0

我有一个 txt 文件中的头文件和值列表,我想读取和写入字典。其中名称是键,0 或 1 是值。

txt 文件的格式如下所示:

#define NAME 0
#define MOREOFTHESAME 1

名称都是不同的长度,但值都是 0 或 1。我还想从每一行中删除 #define。

4

2 回答 2

3

只需在每个空格处拆分行,并忽略第一个输入:

with open('myFile.txt', 'rb') as fil:
    myDict = {}
    for line in fil:
        _, key, value = line.split()
        myDict[key] = value
于 2013-06-12T19:59:47.567 回答
2

你可以dict在这里使用,dict期望一个带有键值对的序列。str.split您可以使用列表切片将最后两项拆分并传递给dict.

with open('abc') as f:
    dic = dict(line.split()[1:] for line in f)

>>> print(dic)
{'NAME': '0', 'MOREOFTHESAME': '1'}

示例str.split

>>> strs = "#define MOREOFTHESAME 1"
>>> strs.split()
['#define', 'MOREOFTHESAME', '1']
>>> strs.split()[1:]
['MOREOFTHESAME', '1']

使用 dict-comprehension(适用于 py2.7+):

with open('abc') as f:
    dic = {k:v for k,v in (line.split()[1:] for line in f)}
...     
>>> dic
{'NAME': '0', 'MOREOFTHESAME': '1'}
于 2013-06-12T20:01:27.730 回答