如何修改Python代码,实现写入含指定内容行及其下一行?
解决方法:提取含指定内容的行及其下一行
首先得先修正原代码里的一个小笔误——你循环里写了file,但实际打开的文件对象是old,这个得先改过来。然后要实现“写入含'22%'的行以及它的下一行”,我们可以用一个标志变量来跟踪是否需要写下一行,具体代码如下:
# 使用with语句自动管理文件,避免手动关闭的麻烦 with open('./old.txt', 'r') as old_file, open('./new.txt', 'w') as new_file: write_next_line = False # 标志:是否需要写入下一行 for line in old_file: # 如果标志为True,说明当前行是目标行的下一行,写入它 if write_next_line: new_file.write(line) write_next_line = False # 写完后重置标志 # 检查当前行是否包含'22%' if '22%' in line: new_file.write(line) # 写入当前行 write_next_line = True # 设置标志,下一行要写入
代码解释
- 用
with语句打开文件:这是Python处理文件的最佳实践,它会在代码块结束后自动关闭文件,不用手动调用close(),避免遗漏导致的资源泄漏。 write_next_line标志:初始为False,当我们遇到含'22%'的行时,先写入该行,然后把标志设为True,这样下一次循环时,就会把下一行也写入文件,写完后再把标志重置为False,等待下一个目标行。
举个例子,假设old.txt的内容是:
abc def g22%hi jkl mno
运行代码后,new.txt里就会有:
g22%hi jkl
完全符合你的需求~
内容的提问来源于stack exchange,提问作者user8239066
相关产品推荐
相关产品推荐

