首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用条带()函数,但运行到一个错误

尝试使用条带()函数,但运行到一个错误
EN

Stack Overflow用户
提问于 2021-02-23 11:27:18
回答 2查看 52关注 0票数 1

我有这样一个文本文件,字符串代表文件路径,整数代表类类型,它们由空格分隔。

代码语言:javascript
复制
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

在我的代码中,我希望将路径和标签分配给不同的变量,并将它们附加到列表中,

代码语言:javascript
复制
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()无效文本“。我不知道这意味着什么,我所有的标签都是整数。我们很感激你的帮助。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-23 11:36:28

数据行之间有空行,分隔是两个空格而不是一个空格。当您将文件转换为list时,空行将被转换为'\n'。它们不能转换为ints。split时的两个空格将包含空字符串。只要删除空行并将空格改为空行,就可以了。

或者,如果这不是一个选项,您可以添加一个空行机制并将split更改为任何空格。例如,将代码更改为:

代码语言:javascript
复制
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_label

if语句检测空行和不带任何参数的split

P.S.:我删除了您的strip('\n'),因为int可以很好地将带有'\n'的字符串转换为整数。

票数 0
EN

Stack Overflow用户

发布于 2021-02-23 11:41:16

代码语言:javascript
复制
>>> 'FEA/1048_IEO_FEA_MD.mp4  3'.strip('\n').split(' ')
['FEA/1048_IEO_FEA_MD.mp4', '', '3']

int('')将产生一个ValueError。使用:

代码语言:javascript
复制
>>> 'FEA/1048_IEO_FEA_MD.mp4  3'.strip('\n').split()
['FEA/1048_IEO_FEA_MD.mp4', '3'] 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66332234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档