这是我在这里的第一条信息,希望我不会犯任何错误。
我正在编写一个 python 2.7 脚本,该脚本在作为外部输入文件提供的一长串行中的行之间进行比较。其中一些行只包含数字,在这些行上我通过检索它们后执行简单的求和getline.linecache
。
我的问题是,经过一定数量的行后,我收到了错误:
ValueError: invalid literal for int() with base 10
我确实明白,这与以下事实有关事实上,如果我尝试打印检索到的值的类型,我会得到 str。我打印了有问题的值,以了解为什么它们无法转换为 int:起初我包含了一些语义错误(我使用了一些错误的行,其中包含字母,这当然无法转换为 int),但我仍然只在数字字符串上得到错误。在所有这些数字字符串上,我试图len(linecache.getline('input', line_n))
查看是否存在任何额外的字符,但我只是找到了 '\n',这在从 str 转换为 int 时不会出现任何问题。
我的输入文件是由一系列行组成的,有些是数字,有些不是;这里有几行:
1
id3021-a
1
129485768
129485769
2
id2034
102
944709842
944709848
例如,此处的第 4 行可以检索,但不能转换为 int。我怎样才能将 str 转换为 int 而不会出错?