我想在 Python 2.7 中获取像这样的大文件:
123 456 GTHGGGTH
223 567 FGRTHSYS
12933 4656832 GJWSOOOSKKSSJ
.....
我想逐行读取文件,忽略第三个元素,并将每行中的第二个元素减去第一个元素。因此上面的第 1 行将返回 333。
到目前为止我已经尝试过:
def deleteLast(list):
NewL = list.pop()
return NewL
f = open(file_name, 'r')
line = f.readline()
while line:
L = line.split()
L2 = deleteLast(L)
L3 = [int(number) for number in L2]
Length = L3[1]-L3[0]
print Length
f.close()
但是,当我尝试这样做时,编译器会说:
ValueError: invalid literal for int() with base 10: 'T'
感谢所有帮助。
最佳答案
这是因为 list.pop()
返回“弹出”的项目,它不会再次返回列表。
不要使用您编写的这个 deleteLast
函数,最好使用如下所示的切片:
L2 = line.split()[0:2]
稍后您将遇到另一个问题,因为您的 while 循环根本没有前进。考虑使用 for 循环。
关于Python 将 List 中的整数相减以返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376013/