Python fileinput.input()是如何工作的?

Python fileinput.input()是如何工作的?,python,Python,上载包含数字(5,5,10,10)的1.txt时,会抛出一个错误:ValueError:invalid literal for int(),以10为基数:“5,5,10,10” 我文件的确切内容是:5,5,10,10 我做错了什么 代码的下半部分用于hackathon上传数据。在 谢谢 旧版本: import fileinput def processLine(inputLine): ..... return y for line in fileinput.input("1.txt"):

上载包含数字(5,5,10,10)的1.txt时,会抛出一个错误:ValueError:invalid literal for int(),以10为基数:“5,5,10,10”

我文件的确切内容是:5,5,10,10

我做错了什么

代码的下半部分用于hackathon上传数据。在

谢谢

旧版本:

import fileinput

def processLine(inputLine):
.....
return y

for line in fileinput.input("1.txt"):
    inputLine = int(line)
    print(processLine(inputLine))
新版本:

for line in fileinput.input():
    inputLine = line.rstrip("\n")
    inputLine = inputLine.rstrip("")
    inputLine = inputLine.split(' ')
    inputLine = list(map(int,inputLine))
    print(processLine(inputLine))
现在它适用于我的数据:51010 但当我在hackathon中编写代码时,仍然会出现一个错误: 数据集编号:0 回溯(最近一次呼叫最后一次): 文件“/prog.py”,第20行,在 ValueError:基数为10的int()的文本无效:“”

我怎么知道该纠正什么

输入 唯一的输入行由4个空格分隔的整数组成:x1、y1、x2、y2。
在50%的测试用例中:1在您的示例中,
是字符串
'5,5,10,10'
(因此问题实际上不是关于
文件输入
,而只是转换):

因此,您缺少拆分和映射:

list_of_input = line.split(',')
list_of_int = map(int, list_of_input)           # python2
list_of_int = list( map(int, list_of_input) )   # python3
# is now [5, 5, 10, 10]

你文件的确切内容是什么?每行一个号码?没有多余的字符或空白?没有空行?文件的确切内容是:5,5,10,10您的代码正在尝试将每一行转换为整数。无法将行
5,5,10,10
转换为整数。您需要将其拆分,并将片段转换为整数。
list_of_input = line.split(',')
list_of_int = map(int, list_of_input)           # python2
list_of_int = list( map(int, list_of_input) )   # python3
# is now [5, 5, 10, 10]