如何将文本文件键值对转为Python变量并实现指定输出?
问题描述
我正在学习Python,现有文本文件file.txt,内容为键值对形式:
pn = FZP16WHTEPE444 cp = custpart pd = partdesc bq = 11,000 co = color 02 ma = material 01 mo = 1234 ln = 2227011234 mb = 38
现有Python代码如下,但直接运行会报错(因为变量未定义):
print(str(pn)) print(str(cp)) print(str(pd)) print(str(bq)) print(str(co)) print(str(ma)) print(str(mo)) print(str(ln)) print(str(mb))
需要修改脚本,读取文本文件中的字符串,输出如下内容:
FZP16WHTEPE444 custpart partdesc 11,000 color 02 material 01 1234 2227011234 38
解决方案
给你两种实用的修改方式,按需选择:
方式一:直接逐行读取打印值
如果file.txt里的键顺序和你要输出的顺序完全一致,用这个方法最省事:
# 用with语句打开文件,自动处理关闭操作 with open('file.txt', 'r', encoding='utf-8') as f: for line in f: # 去掉行首尾的空白(比如换行符),按' = '分割成键和值,只分割一次 _, value = line.strip().split(' = ', 1) # 打印提取到的值 print(value)
方式二:先存字典再按指定顺序打印
如果后续需要调整输出顺序,或者文件里的行顺序可能变动,先把键值对存进字典更灵活:
# 初始化一个空字典用来存键值对 data_dict = {} with open('file.txt', 'r', encoding='utf-8') as f: for line in f: # 分割键和值 key, value = line.strip().split(' = ', 1) data_dict[key] = value # 按照你需要的顺序打印对应的值 print(data_dict['pn']) print(data_dict['cp']) print(data_dict['pd']) print(data_dict['bq']) print(data_dict['co']) print(data_dict['ma']) print(data_dict['mo']) print(data_dict['ln']) print(data_dict['mb'])
关键说明
split(' = ', 1)里的1是核心,确保只分割一次,避免像color 02这种值里带空格的内容被错误拆分。with语句是Python处理文件的最佳实践,不用手动写f.close(),文件会自动关闭,避免资源泄漏。
内容的提问来源于stack exchange,提问作者rotarybean
相关产品推荐
相关产品推荐

