Python如何去除键值对中的多行换行,将内容转为单行输出?
Python 实现键值对多行换行符移除
应用场景
处理拆分多行存储的键值对文本,将同一个键对应的多行文本行合并为单行内容,最终输出每个键值对为独立元素的列表。
输入示例(txt文件内容)
akey=avalue1, avalue2, avalue3 bkey=cvalue
预期输出
['akey=avalue1,avalue2,avalue3', 'bkey=cvalue']
实现代码
def merge_multiline_keyvalue(file_path): result = [] current_kv = "" with open(file_path, 'r', encoding='utf-8') as f: for line in f: # 跳过无实际内容的纯空行 if not line.strip(): continue # 包含=的行判定为新键值对的起始行 if '=' in line: # 把上一个拼接完成的键值对加入结果列表 if current_kv: result.append(current_kv) # 仅移除当前行末尾的换行符,保留原有内容格式 current_kv = line.rstrip('\n') else: # 非起始行属于上一个键值对的值的延续,移除首尾缩进、换行后拼接 current_kv += line.strip() # 遍历结束后加入最后一个未入库的键值对 if current_kv: result.append(current_kv) return result # 调用示例 if __name__ == "__main__": # 替换为你的实际文件路径 res = merge_multiline_keyvalue("test.txt") print(res)
逻辑说明
- 逐行读取文件内容,先过滤掉无实际内容的纯空行
- 以包含
=的行作为新键值对的起始标识,先将上一个拼接完成的键值对存入结果列表 - 无
=的行判定为当前键值对的值的延续,去除行首尾的缩进、换行后直接拼接至当前键值对末尾 - 遍历结束后,将最后一个拼接完成的键值对加入结果列表
内容的提问来源于stack exchange,提问作者S Basu
相关产品推荐
相关产品推荐

