培训“\ x00的年代和类型错误:STAT()参数1必须编码字符串,没有空字节,而不是str的
问题描述:
我有,我的存放路径的几个文件,这样的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')
,但没有运气。
这当我尝试在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])
........
我收到错误如何解决导致问题这个问题?
答
您可以使用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
在批处理列表中。
rstrip('\ x00')'? –
此外,请下次将代码复制粘贴到问题中(您也可以添加*可选*图片)。这样,我们更容易帮助你。 –