【发布时间】:2020-03-09 13:41:55
【问题描述】:
假设我有一个大文本文件,我想跳过包含某个关键字的行以及该行之后的 2 行。
原始文件:
line1 some words
line2 some words
line3 keyword
line4 some words
line5 some words
line6 some words
line7 some words
line8 some words
新文件:
line1 some words
line2 some words
line6 some words
line7 some words
line8 some words
我的代码的简化 sn-p:
with open('Original_file','r') as f:
lines = f.readlines()
nf = open('New_file', 'w')
for line in lines:
if 'keyword' in line:
for i in range(3): continue
else:
nf.write(line + "\n")
循环“for i in range(3): continue”不会跳过行(我假设是因为它只是在嵌套的 for 循环中继续,而不是“for line in lines”for 循环。我也试过“ next(f)" 而不是 "continue" 并收到 StopIteration 错误消息。
当然,如果我尝试,
with open('Original_file','r') as f:
lines = f.readlines()
nf = open('New_file', 'w')
for line in lines:
if 'keyword' in line:
continue
else:
nf.write(line + "\n")
它成功跳过了一行,但只跳过了带有关键字的行,而我也想跳过接下来的两行(总共3行)。
感谢任何建议。感谢您的帮助。
【问题讨论】:
-
您可以使用索引来迭代
for i in range(0, len(lines)):,而不是迭代for line in lines:,然后您可以随时增加索引(注意不要通过最后一行!)。
标签: python