我正在逐行读取文件并存储信息,但是有些行略有不同,需要进行整理。
我有一个502行的文本文件,就像
VV item1 value1 item2 value2 itemA valA
VV item1 value1 item2 value2 itemB valB
...
我通过逐行读取文本来存储这些值,但是各行之间存在差异。有时我有itemB而不是itemA。我第一次尝试
ifn = open(afile,'r')
while 1:
l = ifn.readline()
print(int(l.split(' ')[1])) #prints value1 as expected
if re.search('itemB', l):
print(int(l.split(' ')[6]))
最后一个print语句虽然假定并完全忽略它,但什么也不会打印。
然后我也尝试了
ifn = open(afile,'r')
for i,l in enumerate(ifn):
print( linecache.getline(ifn.name,i).split(' ')[1]) )
但是在执行re.search语句之前它会打印空白行。
我希望能对其中任何一种方法提供帮助。
谢谢。
答案 0 :(得分:1)
我怀疑是您的while循环+ readline()引起了问题。如果使用上下文管理器和for循环,则此代码应该可以工作:
with open('test.txt','r') as file:
for line in file:
if 'itemB' in line:
print(line.split(' ')[5])
此外,您似乎正在尝试访问该行中的第六项-这意味着您需要使用索引5