簡體   English   中英

訓練 '\\x00' s 和 TypeError: stat() 參數 1 必須是沒有空字節的編碼字符串,而不是 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM