读取文件并附加到字典

时间:2017-01-25 22:35:00

标签: python python-3.x

我遇到了将数据附加到词典中的麻烦。

数据:

string integer 
string integer 
string integer 
string integer 

记事本上的文本文件如下:

STRING 13STRING 4STRING 1STRING 4STRING 2STRING 7

最初其中一个字符串缺少一个整数,我只是在文本文件中添加了一个并将其保存到第一个以确保我可以将信息附加到字典中

代码:

d = {}
file = open('data.txt','r')
for line in file:
    data = line.split()
    key, value = data[0], data[1]
    d[key] = value
print(d)

2 个答案:

答案 0 :(得分:0)

您的代码适用于所描述的输入(STRING 13 \ nSTRING 4 ...),我的猜测是您的数据中有一个额外的空行或有字符串但忘记了数字。试着考虑一下:

 ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = "blue"))

答案 1 :(得分:0)

您可以使用正则表达式来解析文件。这种方法对空行等非常有弹性。另外,你打开一个文件但没有关闭它,最好的做法是按照下面的模式使用“with”。最后,“文件”实际上是Python中的一个东西,你用你的变量名称,我会避免使用它作为变量名称:

import re
r = r'(.*?)\s*(\d*$)'
with open('data.txt','r') as f:
    d = dict([ re.match(r, line).groups() for line in f ])
print(d)

data.txt中:

sjfklasdj1 231
sdf23 123
1ldfkjasdlfk 23

fasd

输出:

{'': '', 'fasd': '', '1ldfkjasdlfk ': '23', 'sdf23 ': '123', 'sjfklasdj1 ': '231'}