記錄一個坑——不可見字元
阿新 • • 發佈:2018-12-06
對於訓練神經網路,不可避免的就是要用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
=======================================================