我正在将一个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()
答案 0 :(得分:0)
您可以引入一个表示最后一行状态的变量,如下所示:
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
答案 1 :(得分:0)
我强烈建议您使用python iterators。
看起来您的问题更适合自定义迭代,而不是使用for .. in ..
循环:
lines = iter(f.readlines())
while True:
try:
if next(lines) == 'Anchor':
print(next(lines))
except StopIteration:
break
如果您需要在“Anchor”之后打印其他行,只需添加更多print(next(lines))
来电。