我有一个 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
之前。
关于python - 训练 '\x00' s 和 TypeError : stat() argument 1 must be encoded string without null bytes, 不是 str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744007/