我正在尝试将文件放入字典中。 该文件是这样的:
1 some something something
2 go goforit doit
17 non so
我正在尝试这样的事情但是不起作用:
def filetodic():
d={}
with open("file.txt") as f:
for line in f:
key = line.split()
return d
print filetodic()
编辑:字典中每个字段的键必须是看起来是文件中每行中第一个元素的数字。
答案 0 :(得分:3)
试试这个:
def filetodic():
d={}
f = open("file.txt")
for line in f:
key = line.split()
d[key[0]]= ' '.join(key[1:])
return d
print filetodic()
答案 1 :(得分:3)
由于您需要{1:"some something something", 2:"go goforit doit"}
(如评论中所示),请尝试
k, v = line.rstrip().split(None, 1)
d[int(k)] = v
请注意,这会保留值本身的间距(例如1 abc def
变为1:'abc def'
而不是1:'abc def'
。)
答案 2 :(得分:0)
使用正则表达式:
rg = re.compile(r'(?P<k>[0-9]+)[ \t]+(?P<v>[A-Za-z\t .]+)')
def filetodic(fileo):
return {int(k):v.strip() for k,v in [rg.match(line).groups() for line in fileo]}
print filetodic(open("test.txt"))