【发布时间】:2018-04-20 06:02:43
【问题描述】:
我正在尝试编写代码来读取文件(每行包含 1 个数字)并返回文件中找到的最大 int 值(作为 int)
这是我的代码:
def max_num_in_file(filename):
"""
returns the largest integer found in file, as an integer.
"""
infile = open(filename, "r")
lines = infile.readlines()
string_list = []
for line in lines:
string_list.append((line[0:-1]))
infile.close()
num_list = []
for item in string_list:
num_list.append(int(item))
return max(num_list)
但是对于一个特定文件(其中最大 int 为 -2)我收到此错误:
Traceback (most recent call last):
File "source.py", line 20, in <module>
answer = max_num_in_file('max_num_in_file_test_04.txt')
File "source.py", line 13, in max_num_in_file
num_list.append(int(item))
ValueError: invalid literal for int() with base 10: '-'
谁能帮我诊断这个错误?
【问题讨论】:
-
你在字符串
'-'上调用int,会抛出错误。 -
你为什么不发布一个minimal reproducible example 包括
item在错误中的值? -
为什么要创建字符串'-'?该文件每行应该只有 1 个数字,我将 string_list 中的每个字符串转换为 num_list 中的 int
-
显示文件内容?
-
很遗憾,我无法访问它。
标签: python python-3.x