Python-如何将.txt文件中的行转换为字典元素?

时间:2015-05-03 23:49:48

标签: python file dictionary

说我有一个文件" stuff.txt"在单独的行中包含以下内容:     问:5     R:2     s:7

我想从文件中读取每一行,并将它们转换为字典元素,字母是键,数字是值。 所以我想得到     y = {" q":5," r":2," s":7}

我已尝试过以下内容,但它只打印一个空字典" {}"

y = {} 
infile = open("stuff.txt", "r") 
z = infile.read() 
for line in z: 
    key, value = line.strip().split(':') 
    y[key].append(value) 
print(y) 
infile.close()

2 个答案:

答案 0 :(得分:6)

试试这个:

d = {}
with open('text.txt') as f:
    for line in f:
        key, value = line.strip().split(':')
        d[key] = int(value)

您要附加d[key],就好像它是一个列表一样。你想要的只是像上面一样直接分配它。

另外,使用with打开文件是很好的做法,因为它会在执行'with block'中的代码后自动关闭文件。

答案 1 :(得分:0)

有一些可能的改进。第一种是使用上下文管理器进行文件处理 - 即with open(...) - 如果发生异常,这将为您处理所有需要的任务。

其次,你在字典赋值中有一个小错误:使用=运算符赋值,例如dict [key] = value。

y = {} 
with open("stuff.txt", "r") as infile: 
    for line in infile: 
        key, value = line.strip().split(':') 
        y[key] = (value) 

print(y)