我试图将数组转换为整数,它应该很容易。但我想出了这个错误:ValueError:无效文字为int()与基数10:' - '(Python)
Traceback (most recent call last):
File "C:\Users\Joao\Desktop\Box Count (ongoing).py", line 32, in <module>
pixels = [map(int, x) for x in array]
ValueError: invalid literal for int() with base 10: '-'
的问题是,我读的文件是一个ASCII格,对于一个无音值分配-9999号(它确实如此,因为在编辑这更容易瞄准)。所以我可以使用正则表达式将这个值更改为另一个值,但我不想,所以我想知道这只是我的代码中的一个缺口,或者如果我没有考虑这个问题。有人能指出一个解决方案吗?
代码:
im = open('input.txt', 'r')
imgx = 1452
imgy = 1916
array = []
with open("qqqf.txt", "r") as im:
for line in im:
array.append(line)
print array
pixels = [map(int, x) for x in array]
输入文件:
-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 1 1 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999
您的代码需要每行都是一个整数。如果你在同一行上有所有的整数,你需要使用split()把它分解成一个数组,然后遍历它们。 – Barmar 2014-10-27 16:19:41
确实-9999代表一个负数或正数 - - 在前面 – 2014-10-27 16:20:26