我有一个 txt 文件中的头文件和值列表,我想读取和写入字典。其中名称是键,0 或 1 是值。
txt 文件的格式如下所示:
#define NAME 0
#define MOREOFTHESAME 1
名称都是不同的长度,但值都是 0 或 1。我还想从每一行中删除 #define。
我有一个 txt 文件中的头文件和值列表,我想读取和写入字典。其中名称是键,0 或 1 是值。
txt 文件的格式如下所示:
#define NAME 0
#define MOREOFTHESAME 1
名称都是不同的长度,但值都是 0 或 1。我还想从每一行中删除 #define。
只需在每个空格处拆分行,并忽略第一个输入:
with open('myFile.txt', 'rb') as fil:
    myDict = {}
    for line in fil:
        _, key, value = line.split()
        myDict[key] = value
    你可以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'}