Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:以10为基数的int()的文本无效:';51,2,2,49,15,2,1,14和#x27;_Python - Fatal编程技术网

Python ValueError:以10为基数的int()的文本无效:';51,2,2,49,15,2,1,14和#x27;

Python ValueError:以10为基数的int()的文本无效:';51,2,2,49,15,2,1,14和#x27;,python,Python,我想将我的列表(项目)从string转换为int,因此我可以计算其中的数字。但是,python显示int()的无效文本,并带有base 10错误,我不知道它出了什么问题。(列表:仅一行,用逗号分隔,逗号前后无空格。) 名单: 代码: 我根据你的代码修改了。请试一试 def main(): file = str(input("Please enter the full name of the desired file (with extension) at the prompt below

我想将我的列表(项目)从string转换为int,因此我可以计算其中的数字。但是,python显示int()的无效文本,并带有base 10错误,我不知道它出了什么问题。(列表:仅一行,用逗号分隔,逗号前后无空格。)

名单:

代码:


我根据你的代码修改了。请试一试

def main():
    file = str(input("Please enter the full name of the desired file (with extension) at the prompt below: \n"))
    parseCSV(file)

def parseCSV(file):

    file_open = open(file)
    print (file_open.read())

    with open(file) as rd:
        lines = rd.readlines()


    for line in lines:
        items = map(int, line.split(','))
        print (items)

main()

我根据你的代码修改了。请试一试

def main():
    file = str(input("Please enter the full name of the desired file (with extension) at the prompt below: \n"))
    parseCSV(file)

def parseCSV(file):

    file_open = open(file)
    print (file_open.read())

    with open(file) as rd:
        lines = rd.readlines()


    for line in lines:
        items = map(int, line.split(','))
        print (items)

main()
要回答您的问题,“它怎么了?”

您正在整个csv中读取一个列表,其中包含一个项目,该项目是整个文件的一个长字符串。即使您的csv只包含整数,您在所有行中解析的方式也不会起作用。

要回答您的问题,“它怎么了?”


您正在整个csv中读取一个列表,其中包含一个项目,该项目是整个文件的一个长字符串。即使您的csv仅包含整数,您在所有行中解析的方式也不会起作用。

您正在尝试将其转换为整数:

'51,2,2,49,15,2,1,14'
错误消息非常明确地向您显示了您试图将其类型转换为
int

文件中的数据很可能是逗号分隔的,您将其作为列表读取,其中包含一个逗号分隔的字符串条目,如下所示:

['51,2,2,49,15,2,1,14']
with open(file) as f:
    fd = f.read().split(',')
    d = list(map(int, fd))
因此,您应该使用read()读取文件,然后在“”上拆分,如下所示:

['51,2,2,49,15,2,1,14']
with open(file) as f:
    fd = f.read().split(',')
    d = list(map(int, fd))
d
的输出:

[51, 2, 2, 49, 15, 2, 1, 14]
或者,因为您正在处理一个分隔文件,并且如果您可能有多行这样的行,那么也值得考虑使用该模块。下面是一个使用它的示例,同时也包含了您的代码位:

import csv

with open(file) as cf:
    c = csv.reader(cf, delimiter=',')
    for i in c:
        print(list(map(int, i)))
最后,可以进一步简化:

with open('crma.csv') as cf:
    data = [list(map(int, i)) for i in csv.reader(cf, delimiter=',')]
假设文件中有三行,则如下所示:

[[51, 2, 2, 49, 15, 2, 1, 14], [51, 2, 2, 49, 15, 2, 1, 12], [51, 2, 2, 49, 15, 2, 1, 11]]

您正在尝试将其转换为整数:

'51,2,2,49,15,2,1,14'
错误消息非常明确地向您显示了您试图将其类型转换为
int

文件中的数据很可能是逗号分隔的,您将其作为列表读取,其中包含一个逗号分隔的字符串条目,如下所示:

['51,2,2,49,15,2,1,14']
with open(file) as f:
    fd = f.read().split(',')
    d = list(map(int, fd))
因此,您应该使用read()读取文件,然后在“”上拆分,如下所示:

['51,2,2,49,15,2,1,14']
with open(file) as f:
    fd = f.read().split(',')
    d = list(map(int, fd))
d
的输出:

[51, 2, 2, 49, 15, 2, 1, 14]
或者,因为您正在处理一个分隔文件,并且如果您可能有多行这样的行,那么也值得考虑使用该模块。下面是一个使用它的示例,同时也包含了您的代码位:

import csv

with open(file) as cf:
    c = csv.reader(cf, delimiter=',')
    for i in c:
        print(list(map(int, i)))
最后,可以进一步简化:

with open('crma.csv') as cf:
    data = [list(map(int, i)) for i in csv.reader(cf, delimiter=',')]
假设文件中有三行,则如下所示:

[[51, 2, 2, 49, 15, 2, 1, 14], [51, 2, 2, 49, 15, 2, 1, 12], [51, 2, 2, 49, 15, 2, 1, 11]]


您能提供一个好的CSV示例吗?为什么不使用内置工具来读取CSV?或者至少用逗号分隔文本。“\n”和
”,“
读取行时出现剥离问题?parseCSV只是一个变量名,没有实际的代码或示例。请提供CSV中的一个好示例。为什么不使用内置工具读取CSV?或者至少用逗号拆分文本,“\n”和
”,
读取行时出现剥离问题?parseCSV只是一个变量名,没有实际的代码或示例。此修改导致(AttributeError:“list”对象没有属性“split”)错误。(AttributeError:“list”对象没有属性“split”)此修改发生错误。我们在一分钟/秒内相互答复:-)您提供了很好的详细信息+1编辑使现有答案无效不是一种好做法。这根本不会使答案无效。它提供了更多的上下文,并且没有从被接受的内容中删除任何内容。您可以编辑我的“无效”,因为我使用csv模块发布了一个答案。@user3100115这是完全可以接受的。你的答案绝不是无效的,所有用户都能看到。如果你想让你的答案更明显,你可以自由地找到改进的方法。用户将自动从不太好的答案中选出更好的答案。从我的角度来看,你的答案很好,idjaw的答案更好。我们在一分/秒之内就回答了对方:-)你提供了很好的细节+1编辑使现有答案无效不是一种好做法。这根本不会使答案无效。它提供了更多的上下文,并且没有从被接受的内容中删除任何内容。您可以编辑我的“无效”,因为我使用csv模块发布了一个答案。@user3100115这是完全可以接受的。你的答案绝不是无效的,所有用户都能看到。如果你想让你的答案更明显,你可以自由地找到改进的方法。用户将自动从不太好的答案中选出更好的答案。从我的角度来看,你有一个很好的答案,而idjaw有一个更好的答案。嗯,我想说的是,简单地回答OP代码的错误并不是很有用。有用的是解释什么是错误的,然后为OP试图做的任何事情提供解决方案(或指导)。嗯,我想说的是,简单地回答OP代码的错误不是很有用。有用的是解释什么是错误的,然后为OP试图做的任何事情提供解决方案(或指导)。