2017-10-14 80 views
1

我有,我的存放路徑的幾個文件,這樣的JSON文件:培訓「 x00的年代和類型錯誤:STAT()參數1必須編碼字符串,沒有空字節,而不是str的

>> head test_data.json 
data/Benign/P_00004_LEFT_CC.tif 
data/Benign/P_00004_LEFT_MLO.tif 
data/Benign/P_00004_RIGHT_MLO.tif 
data/Benign/P_00018_RIGHT_CC.tif 

現在問題是當我在python中讀取文件並將每行保存在一個數組中時,我在行尾有\x00\x00\x00\x00\x00。我試過str.rstrip()str.rstrip('\n'),但沒有運氣。

enter image description here

這當我嘗試在os.path.exists()

TypeError: stat() argument 1 must be encoded string without null bytes, not str 

檢查的使用os.path.exists()路徑的存在像以下

if os.path.exists(path_list[0]): 
     img1 = self.loader(path_list[0]) 
     ........ 

我收到錯誤如何解決導致問題這個問題?

+1

rstrip('\ x00')'? –

+2

此外,請下次將代碼複製粘貼到問題中(您也可以添加*可選*圖片)。這樣,我們更容易幫助你。 –

回答

1

您可以使用rstrip('\x00'),或者你可以使用rstrip('\x00\n')剝離既'\n'\x00'同時:

>>> s = 'data/Benign/P_00004_LEFT_CC.tif\x00\x00\x00\x00\x00\n' 
>>> s.rstrip('\n\x00') 
'data/Benign/P_00004_LEFT_CC.tif' 

話雖這麼說,我會NULL字符如何出現在首位的文件中問自己。在處理文件名時使用path_list

path_list = [item.rstrip('\n\x00') for item in path_list] 

您可以通過使用過程path_list在批處理列表中。

相關問題