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

如何用Python保留文本文件前100行并删除剩余内容

Python 3 实现日志文件保留前100行、删除末尾老旧内容的方案

你要的需求可以通过「读取前100行→覆盖写入原文件」的逻辑实现,因为最新内容都在文件开头,前100行就是需要保留的内容,覆盖写入会自动清除原文件剩余内容。


普通版本(适合小体积日志文件)

逻辑简单直接,适合日常绝大多数场景:

# 自定义保留的行数
KEEP_LINES = 100
LOG_PATH = "myLogFile.txt"

# 读取文件取前N行
with open(LOG_PATH, "r", encoding="utf-8") as f:
    keep_lines = f.readlines()[:KEEP_LINES]

# 覆盖写入原文件,自动清除100行之后的所有内容
with open(LOG_PATH, "w", encoding="utf-8") as f:
    f.writelines(keep_lines)

大文件优化版本

如果日志文件体积特别大,一次性读取全量内容会占用过多内存,可以用逐行读取的方案,读够100行就停止加载,内存占用极低:

KEEP_LINES = 100
LOG_PATH = "myLogFile.txt"
keep_content = []

with open(LOG_PATH, "r", encoding="utf-8") as f:
    for _ in range(KEEP_LINES):
        current_line = f.readline()
        # 若文件本身不足100行则直接停止读取
        if not current_line:
            break
        keep_content.append(current_line)

with open(LOG_PATH, "w", encoding="utf-8") as f:
    f.writelines(keep_content)

注意事项

  • 执行清理操作前建议先备份原日志文件,避免误操作丢失数据
  • 如果你的日志文件用的不是utf-8编码,修改open方法里的encoding参数对应到实际编码即可
  • 如果需要定期清理,可以把这段逻辑加到原有脚本的日志写入逻辑之后,每次写完日志自动清理,避免文件体积持续膨胀

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:06:03