拆分行从文件读取到字典键值对

时间:2017-08-15 15:00:46

标签: python dictionary split

我有一个以下格式的文件:

key1/value1
key2/value2
key3/value3
...

我想把它读成字典。我写了下面的代码来完成这个:

 with open(filename, 'r') as dir_file:
    return {line.split('/')[0]: line.split('/')[1] for line in dir_file.readlines()}

然而,在我看来,两次调用split()方法是一个错误的代码,并且必须有一个更简单/更好的方法将该行拆分为我在这里缺少的键值对。

提前谢谢!

2 个答案:

答案 0 :(得分:4)

使用以下内容:

>>> with open('my_file.txt', 'r') as f:
...     d = dict(line.strip().split('/') for line in f)
...
>>>
>>> d
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}

strip()用于删除每行末尾的\n

答案 1 :(得分:1)

你可以试试这个:

new_dict = {a:b for a, b in [i.strip('\n').split("/") for i in open('filename.txt')]}