Python 从文本文件创建专用词典
我有一个txt文件中的头文件和值的列表,我想读写到字典中。其中名称是键,0或1是值 txt文件的格式如下所示: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
#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”已成为一种习惯。