如何基于行首标识代码合并两个TEXT文件?
没问题!你要的是根据每行开头的唯一标识,把第二个文件里对应标识的后缀批量追加到第一个文件的同标识行后面对吧?我给你两种实用方案,不管用Notepad++还是直接写脚本都能搞定:
方案一:用Notepad++结合PythonScript插件处理
Notepad++本身的正则替换很难搞定这种动态匹配场景,但借助它的PythonScript插件就能轻松实现:
安装PythonScript插件
打开Notepad++,点击顶部菜单栏的「插件」→「插件管理」,搜索「PythonScript」并安装,重启Notepad++生效。准备两个文件
把第一个文件(待追加内容的文件)和第二个文件(存储标识对应后缀的文件)都在Notepad++中打开,确保第一个文件是第1个标签页,第二个是第2个标签页。编写并运行处理脚本
点击「插件」→「PythonScript」→「New Script」,粘贴以下代码:# 从第二个文件提取标识与后缀的对应关系 notepad.activateIndex(1) # 切换到第二个文件标签页 tag_map = {} for line in editor.getText().splitlines(): line = line.strip() if not line: continue parts = line.split(maxsplit=1) if len(parts) == 2: tag_map[parts[0]] = parts[1] # 处理第一个文件的每一行 notepad.activateIndex(0) # 切换回第一个文件标签页 processed_lines = [] for line in editor.getText().splitlines(): line = line.strip() if not line: processed_lines.append("") continue tag = line.split(maxsplit=1)[0] if tag in tag_map: processed_lines.append(f"{line} {tag_map[tag]}") else: processed_lines.append(line) # 替换原文件内容 editor.setText("\n".join(processed_lines))保存脚本(比如命名为
merge_tags.py),然后点击运行按钮,第一个文件就会自动处理完成。
方案二:用独立Python脚本处理(无需Notepad++)
如果不想折腾Notepad++插件,直接写个Python脚本更通用,适合批量处理:
创建一个名为merge_files.py的文件,粘贴以下代码:
# 替换成你的文件路径 FILE1_PATH = "第一个文件.txt" FILE2_PATH = "第二个文件.txt" OUTPUT_PATH = "合并后的文件.txt" # 构建标识到后缀的映射字典 tag_map = {} with open(FILE2_PATH, "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line: continue parts = line.split(maxsplit=1) if len(parts) == 2: tag_map[parts[0]] = parts[1] # 处理第一个文件并写入结果 with open(FILE1_PATH, "r", encoding="utf-8") as f_in, open(OUTPUT_PATH, "w", encoding="utf-8") as f_out: for line in f_in: line = line.strip() if not line: f_out.write("\n") continue tag = line.split(maxsplit=1)[0] if tag in tag_map: f_out.write(f"{line} {tag_map[tag]}\n") else: f_out.write(f"{line}\n")
把代码里的文件路径改成你实际的路径,运行脚本后,就能在指定位置得到合并好的文件。
补充说明
你之前尝试正则没成功很正常——正则适合固定模式的替换,但这种需要根据不同标识匹配不同内容的场景,用字典映射的方式才是精准且高效的,尤其是当标识数量很多时,正则根本没法覆盖所有情况。
内容的提问来源于stack exchange,提问作者Eduard
相关产品推荐
相关产品推荐

