[英]Searching for value in a text file then printing the next line
我正在将一个txt文件导入到Python 3中,我能够成功打印我用作标识符的项目/行,但是我无法打印以下行并保留该值。
我正在使用'Anchor'
来查找后面的订单项。 每个'Anchor'
之间的线数变化,这意味着有时在'Anchor'
之间存在垃圾/噪音,但是离岸的深度和距离始终与Anchor的线数相同。 我尝试将1添加到行,因为if函数让我知道它是'Anchor'
值,但是我得到以下内容:
TypeError: Can't convert 'int' object to str implicitly
该文件类似于:
asfasdfasdf
Anchor
The depth is 30 Feet
5 miles from shore
asdfasdsf
Anchor
The depth is 24 feet
8 miles from shore
Anchor
The depth is 21 feet
4 km from shore
尝试使用以下代码:
f = open('test.txt', 'r', encoding='utf8')
for line in f.readlines():
if 'Anchor' in line:
print(line+1)
f.close()
您可以引入一个表示最后一行状态的变量,如下所示:
previous_line_was_anchor = False
for line in f.readlines():
if 'Anchor' in line:
previous_line_was_anchor = True
else:
if previous_line_was_anchor:
print line
previous_line_was_anchor = False
我强烈建议使用python迭代器 。
看起来您的问题更适合自定义迭代,而不是使用for .. in ..
循环:
lines = iter(f.readlines())
while True:
try:
if next(lines) == 'Anchor':
print(next(lines))
except StopIteration:
break
如果您需要在'Anchor'之后打印其他行,只需添加更多print(next(lines))
调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.