如何用Python或AHK批量清理TXT文件中指定内容
提取文本文件中每行“-”之前的内容
方法1:Python脚本(适合编程新手,跨平台)
这是最容易理解和修改的方案,步骤如下:
- 打开文本编辑器(比如Notepad、VS Code),复制以下代码,保存为
clean_text.py - 把你的原始txt文件重命名为
input.txt,和这个py文件放在同一个文件夹里 - 打开命令行,进入该文件夹,运行
python clean_text.py,处理后的内容会生成在output.txt里
# 读取原始文件并写入处理后的内容 with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile: for line in infile: # 按第一个'-'分割,保留前半部分,去除末尾多余空格 cleaned_content = line.split('-', 1)[0].rstrip() outfile.write(f"{cleaned_content}\n")
代码说明:
split('-', 1):只按第一个出现的-分割行内容,避免如果你要保留的信息里也有-的情况rstrip():移除内容末尾的空格(原行中-前有个空格,这步可以把它去掉)- 如果你原始文件名不是
input.txt,把代码里的input.txt改成你的实际文件名即可
方法2:命令行工具(适合Linux/macOS或Windows WSL)
如果你熟悉命令行,可以直接用sed命令一键处理:
sed 's/ - .*BR1$//' 你的原始文件名.txt > 处理后的文件名.txt
命令说明:
s/ - .*BR1$//:匹配每行中从-(注意前面的空格)到末尾BR1的所有内容,替换为空- 把
你的原始文件名.txt和处理后的文件名.txt换成你实际的文件名即可
注意事项
- 操作前一定要备份原始文件,避免误操作导致数据丢失
- 如果文件名包含空格,记得给文件名加上引号,比如
sed 's/ - .*BR1$//' "my file.txt" > "cleaned file.txt"
内容的提问来源于stack exchange,提问作者anzusTheCoder
相关产品推荐
相关产品推荐

