如何用Python移除大TXT文件中的下划线标签?
处理大文本文件移除下划线后缀标签的解决方案
针对600MB的大文本文件,推荐两种高效处理方式,既避免内存溢出,又能精准移除_NUM、_VERB这类下划线后缀:
方法一:Python 逐行处理(跨平台)
用正则表达式精准匹配并替换,通过逐行读写避免将整个文件加载到内存:
import re # 匹配下划线后接全大写字母的后缀(单词边界确保只替换第一个元素的标签) pattern = re.compile(r'_[A-Z]+\b') with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile: for line in infile: modified_line = pattern.sub('', line) outfile.write(modified_line)
常见失败原因说明
- 若用
split('_')取第一个元素,文本中若存在其他下划线会导致错误截断; - 正则表达式未加
\b(单词边界)时,可能误替换后续内容,添加边界能确保匹配精准性。
方法二:命令行工具(Linux/macOS/WSL 极速处理)
用sed命令直接批量替换,速度比Python更快,适合无需编写代码的场景:
sed 's/_[A-Z]*\b//' input.txt > output.txt
效果验证
原内容:
xxxxxxxx_NUM 0.20825405 -0.0756654 0.026837101
have_VERB -0.24344832 0.2747727 -0.024150277
two_NUM -0.038767103 0.20430847 0.10068103
处理后输出:
xxxxxxxx 0.20825405 -0.0756654 0.026837101
have -0.24344832 0.2747727 -0.024150277
two -0.038767103 0.20430847 0.10068103
内容的提问来源于stack exchange,提问作者Ido Lourie
相关产品推荐
相关产品推荐

