[英]TypeError: file() argument 1 must be encoded string without NULL bytes, not str
[英]Training '\x00' s and TypeError: stat() argument 1 must be encoded string without null bytes, not str
我有一個 json 文件,我在其中存儲了幾個文件的路徑,如下所示:
>> 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')
但沒有運氣。
當我嘗試使用os.path.exists()
檢查路徑是否存在時,這會導致問題,如下所示
if os.path.exists(path_list[0]):
img1 = self.loader(path_list[0])
........
我在os.path.exists()
出現錯誤
TypeError: stat() argument 1 must be encoded string without null bytes, not str
我該如何解決這個問題?
您可以使用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
之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.