如何用Python基于冒号为带换行的非结构化地址数据添加分隔空行
解决方案
核心思路
利用正则表达式匹配机构条目起始行(格式为机构名称: 内容,即行首以非冒号字符开头,随后紧跟冒号),在每个新条目(除第一个)前插入空行,实现条目间的分隔。
代码实现
import re # 读取文件内容 with open('test.txt', 'r', encoding='utf-8') as infile: lines = [line.rstrip('\n') for line in infile] result = [] # 正则匹配机构条目起始行:行首有非冒号字符,后跟冒号 entry_pattern = re.compile(r'^[^:]+:') for index, line in enumerate(lines): # 跳过原文件中的空行 if not line.strip(): continue # 第一个条目直接添加 if index == 0: result.append(line) else: # 判断当前行是否是新的机构条目 if entry_pattern.match(line): # 插入空行分隔条目 result.append('') result.append(line) # 写入处理后的内容 with open('processed_test.txt', 'w', encoding='utf-8') as outfile: outfile.write('\n'.join(result))
代码说明
- 精准匹配条目:正则
^[^:]+:只识别以机构名开头、后跟冒号的行,不会误判内容中包含冒号的行。 - 格式兼容:保留原文件中机构信息的换行格式,同时自动跳过原文件的空行,保证输出格式整洁统一。
- 逻辑简洁:遍历过程中仅在新条目前插入空行,无需复杂的状态判断,执行效率高。
内容的提问来源于stack exchange,提问作者Bhargav
相关产品推荐
相关产品推荐

