[英]Read Text File into Dictionary
如何逐行讀取文本文件,並將奇數行分配給字典的鍵,將偶數行分配給字典的值? 例如,如何使下面的新行分隔列表:
A
B
C
D
E
F
G
H
像這樣進入字典:
dict{"A":"B","C":"D","E":"F","G":"H"}
with open(filename, 'r') as f:
d = {}
for line in f:
d[line.strip()] = next(f, '').strip()
注意:如果文件的行數為奇數,則最后一個鍵的值為空。 如果您希望引發異常,請將next(f, '')
更改為next(f)
。 如果您希望使用其他默認值,請將next(f, '')
更改為next(f, 'default')
。
其他方式:
with open(filename, 'r') as f:
d = {k.strip():v.strip() for k, v in zip(f, f)}
請注意,如果文本文件的行數為奇數,它將刪除最后一個鍵。
要在行數奇數時保留最后一個鍵,請執行以下操作:
from itertools import izip_longest, imap
with open(filename, 'r') as f:
f = imap(str.strip, f)
d = dict(izip_longest(f, f, fillvalue='default'))
實際上,您只需要讀入一個文件並循環瀏覽即可。 如果一行是奇數,請記住它作為值,如果一行是偶數,則以該行為鍵將其追加到字典中。
import sys
import numpy as np
fn=sys.argv[1]
d={}
with open(fn,'rb') as f:
for i,line in enumerate(f):
if np.mod(i+1,2)==0:
d[lastVal]=line.replace('\n','')
else:
lastVal=line.replace('\n','')
print d
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.