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

如何用Python删除文件中指定起始行到结束行的内容

Python实现删除文件指定行范围的内容

需求说明

原文件内容:

a
D
c
a
T
c
a
R
c

需要删除第3行到第5行(行号从1开始计数),处理后得到:

a
D
c
a
R
c

方法一:一次性读取处理(适合小文件)

直接读取文件所有行,过滤掉指定范围的行后写回文件,操作简单直观:

file_path = "your_file.txt"
# 要删除的行范围(行号从1开始)
start_del = 3
end_del = 5

# 读取所有行
with open(file_path, 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 过滤目标行:Python列表是0索引,所以要把行号转成索引范围
filtered_lines = [line for idx, line in enumerate(lines) if not (start_del - 1 <= idx <= end_del - 1)]

# 写入处理后的内容
with open(file_path, 'w', encoding='utf-8') as f:
    f.writelines(filtered_lines)

方法二:逐行读写(适合大文件)

如果文件体积较大,一次性加载所有行会占用过多内存,推荐逐行读取并写入,同时用临时文件过渡避免直接修改原文件出错:

import os

file_path = "your_file.txt"
start_del = 3
end_del = 5
temp_path = "temp_processed.txt"

with open(file_path, 'r', encoding='utf-8') as infile, open(temp_path, 'w', encoding='utf-8') as outfile:
    # 从1开始计数行号,匹配用户的行号逻辑
    for line_num, line in enumerate(infile, start=1):
        if not (start_del <= line_num <= end_del):
            outfile.write(line)

# 替换原文件(若需要保留原文件,可先复制一份备份)
os.replace(temp_path, file_path)

注意事项

  • 行号计数:代码中默认匹配用户的从1开始计数逻辑,若你习惯用0索引,直接调整start_del和end_del的数值即可。
  • 编码问题:指定encoding='utf-8'避免不同系统下的文件乱码问题。
  • 数据安全:操作重要文件前建议先备份,方法二中的临时文件方式也能降低出错风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:57:34