用于文本文件中值的 Python 拆分函数

标签 python list dictionary split

我有一个输入文件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/

相关文章:

c++ - 绑定(bind)到类型的引用会丢弃限定符

python - 使用 pandas 添加带有 "to_csv"的评论

python - PyPDF2 PdfFileWriter 没有属性流

python - 识别列表列表中的重复项并总结他们的最后一项

python - 按字典值对字典列表进行排序

python - 大型嵌套列表与字典

python - 使 curses 程序输出在程序退出后保留在终端回滚历史记录中

python - 在方法 'my_print_hexbytes' 中,参数 1 类型为 'uint32_t *'

python - 如何查找字符串中某个字符所有出现的索引?

string - 如何在没有迭代的情况下在 Dart 中将 list<String> 转换为 String?