尝试从文本文件中获取这些数字:
00000
11111
22222
33333
44444
尝试从文本文件中减去我得到的总字符串,让函数以这样的方式将每行作为整数:
import linecache
with file('textfiletest.txt', 'r') as original: testfile = str(original.read())
lines = len(testfile.splitlines())
for i in range(lines):
SID = int(testfile[5*i: -(len(testfile)-5*(i+1))])
print SID
此代码导致打印所有行并在最后一行上出错,称其不是可转换字符。
ValueError: invalid literal for int() with base 10: ''
注意:每行的长度为5个字符。
答案 0 :(得分:3)
Python中的行读取比这简单得多,你真的过于复杂了:
with file('textfiletest.txt', 'r') as original:
for line in original:
if not line.strip():
continue
SID = int(line)
print SID
这将逐个循环遍历文件中的行。 int()
可以处理额外的空格,包括换行符,所以我们需要注意的是确保我们跳过除空格之外的空行。
您的解决方案没有考虑到换行符也会占用空间;行长度为6个字符 换行符。但是,当你清楚地找到str.splitlines()
函数时,为什么要让自己变得如此困难;你可以绕过它:
for line in testfile.splitlines():
# ...
会给你一个循环文件内容中的行而不会尾随换行符,当然也不需要复杂的切片计算。