Python 从文本文件创建专用词典

Python 从文本文件创建专用词典,python,Python,我有一个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, valu

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

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

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理解(适用于py2.7+):


您可以在此处使用
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理解(适用于py2.7+):


为什么要读二进制文件?另外,
line.split()
也应该这样做,不需要传入
'
@1\CR您对分割的看法是正确的。在“二进制”模式下打开文本文件实际上对文本文件没有影响(据我所知),但是如果忘记了二进制选项,在windows中可能会弄乱二进制文件。因此,无论是Windows还是Linux,总是对这两种类型的文件使用“rb”已成为一种习惯。为什么要使用二进制读取?另外,
line.split()
也应该这样做,不需要传入
'
@1\CR您对分割的看法是正确的。在“二进制”模式下打开文本文件实际上对文本文件没有影响(据我所知),但是如果忘记了二进制选项,在windows中可能会弄乱二进制文件。因此,无论是Windows还是Linux,对于这两种类型的文件,总是使用“rb”已成为一种习惯。