1. 程式人生 > >記錄一個坑——不可見字元

記錄一個坑——不可見字元

對於訓練神經網路,不可避免的就是要用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

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