ValueError:带基数10:‘的int()文本无效

ValueError:带基数10:‘的int()文本无效

我正在创建一个读取文件的程序,如果文件的第一行不是空白,它将读取接下来的四行。在这些行上执行计算,然后读取下一行。如果该行不是空的,它将继续。但是,我得到了这个错误:

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())


千万里不及你
浏览 1856回答 3
3回答

慕码人2483693

为了记录在案:>>>&nbsp;int('55063.000000')Traceback&nbsp;(most&nbsp;recent&nbsp;call&nbsp;last): &nbsp;&nbsp;File&nbsp;"<stdin>",&nbsp;line&nbsp;1,&nbsp;in&nbsp;<module>ValueError:&nbsp;invalid&nbsp;literal&nbsp;for&nbsp;int()&nbsp;with&nbsp;base&nbsp;10:&nbsp;'55063.000000'把我带到这里.。>>>&nbsp;float('55063.000000') 55063.0必须被利用!

慕勒3428872

迭代文件并转换为int的Pythonic方法:for&nbsp;line&nbsp;in&nbsp;open(fname): &nbsp;&nbsp;&nbsp;if&nbsp;line.strip():&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;line&nbsp;contains&nbsp;eol&nbsp;character(s) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;int(line)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;assuming&nbsp;single&nbsp;integer&nbsp;on&nbsp;each&nbsp;line你想要做的事情稍微复杂一些,但仍然不是直截了当的:h&nbsp;=&nbsp;open(fname)for&nbsp;line&nbsp;in&nbsp;h: &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;line.strip(): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[int(next(h).strip())&nbsp;for&nbsp;_&nbsp;in&nbsp;range(4)]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;list&nbsp;of&nbsp;integers这样,它在当时处理5行。使用h.next()而不是next(h)在Python2.6之前。你的原因ValueError是因为int无法将空字符串转换为整数。在这种情况下,您需要在转换之前检查字符串的内容,或者除了一个错误:try: &nbsp;&nbsp;&nbsp;int('')except&nbsp;ValueError: &nbsp;&nbsp;&nbsp;pass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;or&nbsp;whatever

明月笑刀无情

以下内容在python中是完全可以接受的:将整数的字符串表示形式传递给int将浮点数的字符串表示形式传递到float将整数的字符串表示形式传递给float通过浮子进入int将整数传递给float但你得到了一个ValueError如果传递一个字符串表示形式,则浮子进int,或任何整数(包括空字符串)的字符串表示形式。如果您确实希望将浮点数的字符串表示形式传递给int,正如@katyhuff所指出的,您可以先转换为浮点数,然后再转换为整数:>>>&nbsp;int('5')5>>>&nbsp;float('5.0')5.0>>>&nbsp;float('5')5.0>>>&nbsp;int(5.0)5>>>&nbsp;float(5)5.0>>>&nbsp;int('5.0')Traceback&nbsp;(most&nbsp;recent&nbsp;call&nbsp;last): &nbsp;&nbsp;File&nbsp;"<stdin>",&nbsp;line&nbsp;1,&nbsp;in&nbsp;<module>ValueError:&nbsp;invalid&nbsp;literal&nbsp;for&nbsp;int()&nbsp;with&nbsp;base&nbsp;10:&nbsp;'5.0'>>>&nbsp;int(float('5.0')) &nbsp;&nbsp;5
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python