我想将一个字典附加到已经有标题行的CSV文件中,如果值不存在,我希望写入'-999'
:
SDict ={T1:'A',T2:'B',T4:'D')
CSV文件中的标题为
T1,T2,T3,T4,T5
7,8,9,10,11
预期结果为:
T1,T2,T3,T4,T5
7,8,9,10,11
A,B,-999,D,-999
我正在尝试使用以下代码完成此操作:
import sys
import os
import csv
def GetFileHeader(Fpath):
i=10
ResFile=open (Fpath, 'r+')
HeaderDict={}
r=csv.reader(ResFile)
HeaderList = r.next()
for Header in HeaderList:
HeaderDict[Header]=i+1
print HeaderDict
ResFile.close()
return HeaderDict
Fpath= r'Z:\temp\assaf\S2TTP\S2T_TP\modules\results\Y124\res.csv'
Header= GetFileHeader(Fpath)
with open(Fpath,'rb') as fin:
dr = csv.DictReader(fin, dialect='excel')
print dr
print dr.fieldnames
# dr.fieldnames contains values from first row of `f`.
with open(Fpath,'ab+') as fou:
dw = csv.DictWriter(fou, dialect='excel', fieldnames=dr.fieldnames)
fieldnames=dr.fieldnames
for K in fieldnames:
dw.writerow(Header[k])
header.append('T6')
,然后再次执行dict_writer = csv.DictWriter(f, header, -999)
来使用新的表头。 - user2379410header.extend(set(other_header).difference(header))
,其中other_header
是第二个单元的标题。但如果您需要更多帮助,请提出一个新问题:)
- user2379410