从文本文件创建专用词典

2024-10-03 19:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

txt文件的格式如下所示:

#define NAME 0
#define MOREOFTHESAME 1

名称的长度都不同,但值都是0或1。 我还想从每行中去掉#define。你知道吗


Tags: 文件nametxt名称列表字典头文件格式
2条回答

您可以在这里使用dictdict需要一个带有键值对的序列。您可以使用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理解(适用于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'}

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

with open('myFile.txt', 'rb') as fil:
    myDict = {}
    for line in fil:
        _, key, value = line.split()
        myDict[key] = value

相关问题 更多 >