Python如何将特定格式文本文件内容转换为对应元组输出
问题描述
你有一个格式如下的文本文件:
ID1 NUMBER1 NUMBER2 ID2 NUMBER3 NUMBER4
期望得到的输出为:(ID1,NUMBER1),(ID1,NUMBER2),(ID2,NUMBER3),(ID2,NUMBER4)
你目前已实现逐行读取文件,读取到的每行内容类型为字符串,现有代码如下:
with open("outfile.txt") as f: for line in f: print(line, type(line))
实现方案
核心思路:先过滤空行,再按规则分组拼接,具体实现代码如下:
res = [] current_id = None with open("outfile.txt", "r", encoding="utf-8") as f: for line in f: # 清理每行首尾的换行、多余空格,过滤空行 cleaned_line = line.strip() if not cleaned_line: continue # 识别ID行,更新当前生效的ID if cleaned_line.startswith("ID"): current_id = cleaned_line # 数字行和当前ID拼接为要求格式存入结果 else: res.append(f"({current_id},{cleaned_line})") # 拼接所有结果为最终输出 final_output = ",".join(res) print(final_output)
如果你的ID命名规则不是固定以ID开头,也可以调整判断逻辑,比如将过滤后的有效行按「1个ID+2个数字」的固定长度分组处理,适配性更强。
内容的提问来源于stack exchange,提问作者Deyaa
相关产品推荐
相关产品推荐

