2017-10-14 25 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在批处理列表中。

相关问题