ValueError:long()的基数为10的无效文字:''

时间:2013-03-19 22:23:16

标签: python newline strip

如何让它发挥作用?

n = 1234
f = open("file", "r")
while True:
 x=f.readline()
 print "*********************"
 print n%(long(x))
 if n%(long(x))==0:
   print x
else:
 print "..."

我是python中的菜鸟,我收到一个我不明白的错误。我做错了什么?

ValueError: invalid literal for long() with base 10: ''

2 个答案:

答案 0 :(得分:6)

In [104]: long('')
ValueError: invalid literal for long() with base 10: ''

此错误告诉您x是空字符串。

您可以在文件末尾获取此信息。 它可以通过以下方式修复:

while True:
    x = f.readline()
    if x == '': break

答案 1 :(得分:0)

try/except块可以方便地调试这样的事情

n = 1234
f = open("file", "r")
while True:
 x=f.readline()
 print "*********************"
 try:                                              # Add these 3 lines
     print n%(long(x))
 except ValueError:                                # to help work out
     print "Something went wrong {!r}".format(x)   # the problem value
 if n%(long(x))==0:
   print x
else:
 print "..."