-2

文件.txt

Harry Moon, Meteor \n roger gim, astronaut \n john banks, westpac \n john banks, ASB

代码:

FILE=file.txt
filename=open(FILE,"rt")
fileread=filename.readlines()
fileread.sort()
for i in fileread:
    dict={}
    dict[i.split(',')[0]]=i.split(',')[1]
    print dict

有了这个,我能够获得以下内容:

{'Harry Moon': ' Meteor\n'}
{'john banks': ' ASB'}
{'john banks': ' westpac\n'}
{'roger gim': ' astronaut\n'}

但是,我想要的是这样的:

{ 'Harry Moon': ' Meteor'
   , 'john banks': ' ASB'
   , 'john banks': ' westpac'
   , 'roger gim': 'astronaut' }
4

3 回答 3

1
dict([line.strip().split(',') for line in open(FILE).readlines()])
于 2013-05-15T16:26:27.020 回答
1

不要使用“dict”作为变量名,with打开文件时也要使用:

with open('file.txt') as f:
   result = dict(line.strip().split(',') for line in f)
于 2013-05-15T16:50:52.803 回答
0

尝试这个....

file_str = open(FILE).read()

d = {}
for line in file_str.splitlines():
    d[line.split(',')[0]] = line.split(',')[1]

print d

还有 John Smith Optionals 的答案,非常简洁的代码。

于 2013-05-15T16:28:13.067 回答