我有一个 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'}