记录一个坑——不可见字符

对于训练神经网络,不可避免的就是要用python处理数据集,前几天做了一个索引的.txt文件,来索引数据集。发现提示说没有此文件的路径

No such file or directoryr traceback): /home/zhouyuan/SIGGRAPH18SSS-master/DYCE_7/7_amodal/7_0_20_amodal.png
	 [[Node: ReadFile = ReadFile[_device="/job:localhost/replica:0/task:0/device:CPU:0"](_arg_ph_fname_img_0_0)]]

仔细对了一下。文件的路径一点问题都没有。

经过一番思索

原来是读取的.txt文件里面有不可见的转义字符,其实上面的路径多了一个\r,所以做成列表索引的.txt文件时一定要,查看一下python下你做的文件名的list,在list里面它可以看到转义字符等的不可见字符。而用print函数去处理字符串的时候,打印出的东西不能显示不可见的转义字符。

  这个\r转义字符很奇怪,在我对DYCE数据的处理中,并未在文件名的后面误加上一个转义字符,但是在数据读取的时候就是会在labelmap的文件名后面加上一个\r的转义字符。

import os
train=[]
train_proc=[]

file_image_path=r"E:\experiment\DYCE_7\7_image"
file_mask_Path=r"E:\experiment\\DYCE_7\7_amodal"

images_path=os.listdir(file_image_path)
masks_path=os.listdir(file_mask_Path)

for img in images_path:
    num_img=img.split("_")[1]
    num_img=num_img.split(".")[0]
    for mask in masks_path:
        num_mask=mask.split("_")[1]
        num_mask=num_mask.split("_")[0]
        if num_img == num_mask:
            path='/7_image/'+img+" "+"/7/"+mask
            path_proc=path.strip("\r")

            train_proc.append(path_proc)
            train.append(path)
print("test***********************************")
print(train==train_proc)
print("test***********************************")
file_path=r"C:\Users\zy\Desktop\train_1.txt"
'''file=open(file_path, "w")
for i in train:
    file.write(i+"\n")
file.close()'''

结果:

D:\anaconda3\python.exe E:/experiment/SIGGRAPH18SSS-master/users.py
test***********************************
True
test***********************************

Process finished with exit code 0

=======================================================

猜你喜欢

转载自blog.csdn.net/weixin_41950276/article/details/84329948
今日推荐