如何在Python 2.7或Notepad++中合并特定格式的文本行?
我来给你两个超实用的方案,不管是用Python 2.7写个小脚本,还是直接用Notepad++的正则替换,都能轻松搞定这个合并需求~
方案一:Python 2.7 脚本实现
思路很简单:逐行读取文件,把以500开头的奇数行先存起来,遇到下一行(偶数行)就把两者用分号拼接后写入新文件。
直接用这段代码就行,记得把input.txt改成你实际的文件名,运行后会生成合并好的output.txt:
# 打开输入文件和输出文件,编码根据你的文件实际情况调整(比如GBK或UTF-8) with open("input.txt", "r") as infile, open("output.txt", "w") as outfile: stored_line = "" for line in infile: # 去除每行首尾的空白和换行符,避免合并后出现多余空格或换行 cleaned_line = line.strip() if cleaned_line.startswith("500"): # 遇到奇数行,先暂存起来 stored_line = cleaned_line else: # 遇到偶数行,和暂存的奇数行合并 if stored_line: merged = "{0};{1}".format(stored_line, cleaned_line) outfile.write(merged + "\n") stored_line = ""
如果你的文件有特殊编码(比如中文常用的GBK编码),就在open里加上encoding='gbk'参数哦。
方案二:Notepad++ 正则替换实现
不想写代码的话,用Notepad++的正则替换更快捷,步骤如下:
- 打开你的文本文件,按下
Ctrl+H打开替换对话框; - 切换到「替换」标签页,勾选「正则表达式」(注意不要勾选「. 匹配换行符」);
- 在「查找目标」里输入:
^(500.*)\r?\n(?!500)(.*)$ - 在「替换为」里输入:
\1;\2 - 点击「全部替换」,搞定!
正则小说明:
^(500.*):匹配行首以500开头的整行内容,把它存为第一个分组;\r?\n:匹配换行符(兼容Windows的\r\n和Unix的\n);(?!500):负前瞻规则,确保下一行不是以500开头的;(.*)$:匹配下一行的所有内容,存为第二个分组;- 替换时用
\1;\2把两个分组用分号拼接起来。
内容的提问来源于stack exchange,提问作者user2433705
相关产品推荐
相关产品推荐

