我有一个输入文件Input.txt
,在输入中我的内容为
Name1=Value1
Name2=Value2
Name3=Value3
现在,从输入文件中,我可以按照新行拆分值。下一个任务是将名称和值对存储在字典中。我尝试了以下方法,
with open("Input.txt", "r") as param_file:
for line in param_file:
str = line.split()
d = dict(x.split("=") for x in str.split("\n"))
for k,v in d.items():
print(k, v)
但这给了我错误: AttributeError: 'list' object has no attribute 'split'
我知道列表没有 split 功能,这就是我得到这个的原因。实现这个的正确方法是什么?
预期输出是:
Name1 Value1
Name2 Value2
Name3 Value3
最佳答案
出现了几个问题。首先是您创建的字典在每次迭代时都会被覆盖。这本质上意味着字典 d 将仅存储最后一行的值。一种选择是使用 .readlines()
读取整个文件并删除 for 循环。它应该看起来像:
with open("Input.txt", "r") as param_file:
text = param_file.readlines()
d = dict(x.strip().split("=") for x in text)
for k,v in d.items():
print(k, v)
关于用于文本文件中值的 Python 拆分函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61744953/