我有一個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所有。
您可以使用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']
使用字典,理解(在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'}
,只需拆分在每個空間中的直線,而忽視了第一次enrty:
with open('myFile.txt', 'rb') as fil:
myDict = {}
for line in fil:
_, key, value = line.split()
myDict[key] = value
感謝您的解釋! – coderkid