如何使用Python批量删除文件夹内所有.TXT/.XY文件的前N行表头
批量移除.XY文件表头Python实现方案
方案1:生成新文件(推荐,无数据损坏风险)
该方案会生成带_processed后缀的新文件,原文件保留不变,处理后格式和原文件完全一致。
import os # 配置参数 folder_path = "./" # 替换为你的.XY文件所在文件夹路径,./代表当前py文件所在文件夹 skip_rows = 23 # 需要跳过的表头行数 # 遍历文件夹下所有文件 for filename in os.listdir(folder_path): # 只处理.XY后缀的文件 if filename.endswith(".XY"): file_path = os.path.join(folder_path, filename) # 读取原文件所有行 with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 跳过前skip_rows行,保留后面的内容 processed_lines = lines[skip_rows:] # 生成新文件名 new_filename = f"{os.path.splitext(filename)[0]}_processed.XY" new_file_path = os.path.join(folder_path, new_filename) # 写入新文件 with open(new_file_path, 'w', encoding='utf-8') as f: f.writelines(processed_lines) print(f"已处理:{filename} -> {new_filename}")
方案2:直接修改原文件(请提前备份所有原数据)
该方案直接覆盖原文件,不需要额外存储新文件,适合已经备份好原数据的场景。
import os # 配置参数 folder_path = "./" # 替换为你的.XY文件所在文件夹路径 skip_rows = 23 # 需要跳过的表头行数 for filename in os.listdir(folder_path): if filename.endswith(".XY"): file_path = os.path.join(folder_path, filename) with open(file_path, 'r', encoding='utf-8') as f: lines = f.readlines() # 直接写入原文件,覆盖原有内容 with open(file_path, 'w', encoding='utf-8') as f: f.writelines(lines[skip_rows:]) print(f"已处理:{filename}")
注意事项
- 如果你的文件存在小写
.xy后缀,将filename.endswith(".XY")改为filename.endswith((".XY", ".xy"))即可同时匹配两种后缀 - 如果后续表头行数有变化,修改
skip_rows的数值即可 - 代码不会改动有效数据的分隔符、换行格式,处理后文件和原文件格式完全一致
- 运行时直接把py文件放在.XY文件所在文件夹下,用VS Code的Python 3.7环境运行即可
- 如果运行时报编码错误,将
open函数里的encoding='utf-8'改为encoding='gbk'即可适配中文编码的文件
内容的提问来源于stack exchange,提问作者matsmcfly
相关产品推荐
相关产品推荐

