如何在Python中替换文件内容并提取SOH分隔键值对的值
解决方案
你可以用两种简单方式实现需求,核心逻辑是移除所有tag=前缀,再把SOH替换为逗号即可:
方式1:字符串分割实现(无需引入正则)
SOH = "\x01" result = [] with open('file.txt', 'r', encoding='utf-8') as f: for line in f: line = line.strip() if not line: continue # 拆分每个键值对后只取value部分 values = [kv.split('=')[1] for kv in line.split(SOH)] result.append(','.join(values)) # 写入时行之间加空行匹配期望输出 with open('file.txt', 'w', encoding='utf-8') as f: f.write('\n\n'.join(result))
方式2:正则替换实现(代码更简洁)
import re with open('file.txt', 'r', encoding='utf-8') as f: content = f.read() # 依次移除所有tag=前缀、替换SOH为逗号、给每行之间加空行 content = re.sub(r'\d+=', '', content) content = content.replace('\x01', ',') content = content.replace('\n', '\n\n') with open('file.txt', 'w', encoding='utf-8') as f: f.write(content)
注意事项
你之前代码中写的replace('x01', ',')是错误的,实际SOH是转义字符\x01,直接写字符串x01无法匹配到实际的分隔符。
内容的提问来源于stack exchange,提问作者test1 1
相关产品推荐
相关产品推荐

