我正在创建一个程序来读取一个文件,如果文件的第一行不是空的,它将读取接下来的四行。对这些行执行计算,然后读取下一行。如果该行不是空的,则继续。但是,我得到了这个错误:
ValueError: invalid literal for int() with base 10: ''.
它正在读取第一行,但无法将其转换为整数。
我能做什么来解决这个问题?
代码:
file_to_read = raw_input("Enter file name of tests (empty string to end program):")
try:
infile = open(file_to_read, 'r')
while file_to_read != " ":
file_to_write = raw_input("Enter output file name (.csv will be appended to it):")
file_to_write = file_to_write + ".csv"
outfile = open(file_to_write, "w")
readings = (infile.readline())
print readings
while readings != 0:
global count
readings = int(readings)
minimum = (infile.readline())
maximum = (infile.readline())
以下内容在python中完全可以接受:
int
float
float
int
float
但是,如果将float的字符串表示形式传递到
int
中,或者传递除整数(包括空字符串)以外的任何字符串表示形式,则会得到ValueError
。如果您确实要将浮点的字符串表示形式传递给int
,正如@katyhuff在上面指出的,您可以先转换为浮点,然后再转换为整数:在文件上迭代并转换为int的Pythonic方法:
你要做的事情稍微复杂一点,但仍然不是直截了当的:
这样它一次处理5行。在Python 2.6之前使用
h.next()
,而不是next(h)
。您拥有
ValueError
的原因是int
无法将空字符串转换为整数。在这种情况下,您需要在转换之前检查字符串的内容,或者除非出现错误:仅作记录:
我来了。。。
必须使用!
相关问题 更多 >
编程相关推荐