Notepad++批量替换文件中140+唯一行的方法求助
批量替换文本文件指定行的解决方案
步骤1:准备替换映射文件
创建一个文本文件(比如命名为replace_pairs.txt),每行按分隔符对应原行和新行,格式如下:
原需要替换的行内容|替换后的新行内容
另一行原内容|另一行新内容
- 如果原行里包含
|,请更换成不冲突的分隔符(比如###),后续脚本里同步修改分隔符即可。
步骤2:运行Python脚本
使用以下脚本处理你的大型文本文件,脚本会读取映射规则,批量完成替换并生成新文件(不会修改原文件,避免数据丢失):
# 配置文件路径 replace_map_path = "replace_pairs.txt" source_file_path = "你的大型文件.txt" output_file_path = "替换后的文件.txt" # 加载替换规则到字典 replace_rules = {} with open(replace_map_path, 'r', encoding='utf-8') as f: for line in f: # 移除行尾换行符,避免匹配干扰 clean_line = line.rstrip('\n') # 按分隔符拆分原行和新行,1表示只拆分一次 original, new = clean_line.split('|', 1) # 存储规则:原行(去掉换行)对应新行 replace_rules[original] = new # 处理目标文件 with open(source_file_path, 'r', encoding='utf-8') as src, open(output_file_path, 'w', encoding='utf-8') as dst: for line in src: # 去掉原行的换行符用于匹配 line_to_check = line.rstrip('\n') # 匹配到规则就写新行,否则保留原行 if line_to_check in replace_rules: dst.write(replace_rules[line_to_check] + '\n') else: dst.write(line) print(f"替换完成,结果已保存到 {output_file_path}")
关键注意事项
- 编码适配:如果你的文件是GBK等非UTF-8编码,将脚本里的
encoding='utf-8'替换为对应编码(比如encoding='gbk')。 - 分隔符调整:若原行包含
|,把脚本中split('|', 1)改成split('###', 1),同时映射文件里用###分隔原行和新行。 - 换行符兼容:如果是Windows系统的换行符(
\r\n),将rstrip('\n')替换为rstrip('\r\n')。 - 数据安全:始终先备份原文件,脚本生成新文件,不会修改源文件。
内容的提问来源于stack exchange,提问作者janderson055
相关产品推荐
相关产品推荐

