You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将多列TXT文件转为字典:提取前两列作键值对(Python 2.6)

解决Python 2.6提取文本文件前两列作为键值对的问题

嘿,作为Python 2.6新手,别担心,这个需求其实很好实现,我一步步给你讲清楚怎么做:

核心思路

我们需要完成三个简单步骤:

  • 读取文本文件的内容
  • 按竖线|分割每行(或每条记录),提取前两列
  • 将前两列组合成键:值的格式,或者存入字典备用

代码实现(假设每行是一条记录)

如果你的.txt文件里每行都是一条完整的记录(比如每行格式是AM|75019|...|...|...),可以用下面的代码:

# 初始化一个字典,用来存储键值对(可选,不需要的话可以去掉)
key_value_dict = {}

# 使用with语句打开文件,Python 2.6已支持,会自动关闭文件
with open('你的文件名.txt', 'r') as file_obj:
    # 遍历文件的每一行
    for line in file_obj:
        # 去掉行首尾的空格、换行符,避免干扰分割
        cleaned_line = line.strip()
        # 跳过空行
        if not cleaned_line:
            continue
        # 按竖线分割每行内容,得到各列的列表
        columns = cleaned_line.split('|')
        # 确保至少有两列,防止格式错误导致索引越界
        if len(columns) >= 2:
            # 提取前两列,再次清理空白
            key = columns[0].strip()
            value = columns[1].strip()
            # 打印键值对
            print("{0}:{1}".format(key, value))
            # 如果要存入字典,执行下面的语句
            key_value_dict[key] = value

# 可选:打印最终的字典
# print(key_value_dict)

特殊情况处理(所有记录在同一行)

如果你的.txt文件里所有记录都连在一行(比如你给出的示例内容那样),可以用下面的代码处理:

key_value_dict = {}

with open('你的文件名.txt', 'r') as file_obj:
    # 读取整个文件内容
    full_content = file_obj.read().strip()
    # 按" AM|"分割,拆分出所有记录
    records = full_content.split(' AM|')
    
    # 处理第一条记录(开头的AM|...)
    if records:
        first_columns = records[0].split('|')
        if len(first_columns) >=2:
            key = first_columns[0].strip()
            value = first_columns[1].strip()
            print("{0}:{1}".format(key, value))
            key_value_dict[key] = value
    
    # 处理剩下的记录(每条记录开头缺少AM,需要手动指定键为AM)
    for record in records[1:]:
        columns = record.split('|')
        if len(columns) >=1:
            value = columns[0].strip()
            print("AM:{0}".format(value))
            # 如果要保存所有AM对应的值,建议用列表存储,避免后面的覆盖前面的
            # key_value_dict.setdefault('AM', []).append(value)
            key_value_dict['AM'] = value

关键知识点说明

  • with open(...):Python 2.6开始支持的安全文件操作方式,无需手动调用close(),文件会在代码块结束后自动关闭。
  • strip():用于去除字符串首尾的空白字符(空格、换行符等),保证提取的键值没有多余空白。
  • split('|'):按指定的分隔符(这里是竖线)拆分字符串,得到各列的列表。
  • 索引检查len(columns)>=2:避免因某些行格式错误(比如缺少列)导致程序报错。

内容的提问来源于stack exchange,提问作者klex52s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:33:28