我有一个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
如何解决此问题?
答案 0 :(得分: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
。