You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python结合fileinput库基于上一行条件删除文本行?

使用fileinput库实现删除目标行下一行的方案

核心思路是记录上一行的状态,遍历文件时判断是否需要跳过当前行:

  • 初始化一个标记变量(比如skip_next),用来标记下一行是否需要跳过
  • 遍历每一行时:
    1. 如果标记为True,就跳过当前行,同时把标记重置为False
    2. 如果标记为False,先输出当前行,再检查当前行是否包含目标字符串(比如"grapes"),如果包含就把标记设为True

完整代码示例

import fileinput

# 目标字符串
TARGET = "grapes"
# 需要处理的文件路径
FILE_PATH = "your_file.txt"

skip_next = False

# 使用fileinput的inplace参数直接修改原文件
for line in fileinput.input(FILE_PATH, inplace=True):
    # 注意保留原行的换行符,rstrip避免重复添加
    line = line.rstrip('\n')
    if skip_next:
        skip_next = False
        continue
    print(line)
    if TARGET in line:
        skip_next = True

关键说明

  • fileinput.input(inplace=True)会直接修改原文件,处理时建议先备份文件
  • rstrip('\n')是为了避免print自动添加的换行符和原行的换行符重复,导致输出空行
  • 标记变量skip_next的状态切换是核心:当检测到目标行时,告诉下一次循环跳过当前行

测试验证

原文件内容:

I enjoy eating grapes.
Sometimes I apples are good too.
But I do not line bananas.

运行代码后,文件内容会变为:

I enjoy eating grapes.
But I do not line bananas.

内容的提问来源于stack exchange,提问作者Timothy Pierce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:15:28