我有这样一个文本文件,字符串代表文件路径,整数代表类类型,它们由空格分隔。
FEA/1048_IEO_FEA_MD.mp4 3
FEA/1029_IWW_FEA_XX.mp4 3
FEA/1002_WSI_FEA_XX.mp4 3
FEA/1001_IWW_FEA_XX.mp4 3在我的代码中,我希望将路径和标签分配给不同的变量,并将它们附加到列表中,
def get_clip_list(self, cliplist_file):
datalist = list(open(cliplist_file, 'r'))
clips_with_label = []
for data in datalist:
path, label = data.strip('\n').split(' ')[0], int(data.strip('\n').split(' ')[1])
clips_with_label.append({'path': path, 'label': label})
return clips_with_label我的错误是"ValueError:带基数10:'‘的int()无效文本“。我不知道这意味着什么,我所有的标签都是整数。我们很感激你的帮助。谢谢。
发布于 2021-02-23 11:36:28
数据行之间有空行,分隔是两个空格而不是一个空格。当您将文件转换为list时,空行将被转换为'\n'。它们不能转换为ints。split时的两个空格将包含空字符串。只要删除空行并将空格改为空行,就可以了。
或者,如果这不是一个选项,您可以添加一个空行机制并将split更改为任何空格。例如,将代码更改为:
def get_clip_list(cliplist_file):
datalist = list(open(cliplist_file, 'r'))
clips_with_label = []
for data in datalist:
if data == '\n':
continue
path, label = data.split()[0], int(data.split()[1])
clips_with_label.append({'path': path, 'label': label})
return clips_with_labelif语句检测空行和不带任何参数的split。
P.S.:我删除了您的strip('\n'),因为int可以很好地将带有'\n'的字符串转换为整数。
发布于 2021-02-23 11:41:16
>>> 'FEA/1048_IEO_FEA_MD.mp4 3'.strip('\n').split(' ')
['FEA/1048_IEO_FEA_MD.mp4', '', '3']int('')将产生一个ValueError。使用:
>>> 'FEA/1048_IEO_FEA_MD.mp4 3'.strip('\n').split()
['FEA/1048_IEO_FEA_MD.mp4', '3'] https://stackoverflow.com/questions/66332234
复制相似问题