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

如何通过program.py在运行两次时精准删除text文件中的指定文本行

解决方案

我来帮你搞定这个需求!核心要解决两个关键点:一是判断脚本是否是第二次运行,二是精准筛选要保留的行(只删掉纯text2的行,留下包含text2但还有其他内容的行)。

步骤1:追踪脚本运行次数

我们可以用一个轻量的计数文件(比如run_count.txt)来记录运行次数,每次启动脚本先读取这个文件的数值,再决定执行的操作:

  • 第一次运行:执行你原本的文本插入逻辑,然后把计数更新为2
  • 第二次运行:执行删除指定行的逻辑,之后可根据需求选择重置计数(方便重复测试)或保持当前计数

步骤2:实现精准行筛选

删除逻辑的核心是逐行读取文本文件,只保留不等于text2的行(注意要去掉每行末尾的换行符再判断,避免因换行符导致匹配失败)。

完整代码示例

def get_run_count():
    # 读取运行次数,文件不存在则默认是第一次运行
    try:
        with open('run_count.txt', 'r') as f:
            return int(f.read().strip())
    except FileNotFoundError:
        return 1

def update_run_count(count):
    # 更新运行次数到计数文件
    with open('run_count.txt', 'w') as f:
        f.write(str(count))

def insert_text():
    # 这里替换成你原本的插入文本逻辑,以下是示例代码
    with open('text.txt', 'a') as f:
        f.write('text1\n')
        f.write('text2\n')
        f.write('text1 text2\n')
    print("已完成文本插入")

def delete_target_lines():
    # 临时存储需要保留的行
    lines_to_keep = []
    with open('text.txt', 'r') as f:
        for line in f:
            # 去除换行符后判断是否为纯text2
            stripped_line = line.strip()
            if stripped_line != 'text2':
                lines_to_keep.append(line)
    # 将保留的行覆盖写回原文件
    with open('text.txt', 'w') as f:
        f.writelines(lines_to_keep)
    print("已删除纯text2的行,text1 text2的行已保留")

if __name__ == '__main__':
    run_count = get_run_count()
    if run_count == 1:
        insert_text()
        update_run_count(2)
    elif run_count == 2:
        delete_target_lines()
        # 可选:如果需要下次运行重新执行插入,解开下面的注释重置计数
        # update_run_count(1)

代码说明

  • get_run_count():负责读取运行计数,第一次运行时因run_count.txt不存在,会默认返回1
  • update_run_count():更新计数文件,标记下一次运行的状态
  • insert_text():这里是示例插入逻辑,你可以直接替换成你自己已实现的插入代码
  • delete_target_lines():逐行扫描文件,仅保留非纯text2的行,再覆盖写回原文件,完美匹配你的需求

测试时,第一次运行脚本会执行插入操作,第二次运行就会自动删除纯text2的行,而text1 text2的行会被完整保留。

内容的提问来源于stack exchange,提问作者Aliaksandr S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:27:01