如果我已经有一个标题行,并且如果一个值不存在,我想将我必须的字典附加到一个 CSV 文件,我想写'-999':
SDict ={T1:'A',T2:'B',T4:'D')
Run Code Online (Sandbox Code Playgroud)
其中 CSV 文件的标题为
T1,T2,T3,T4,T5
7,8,9,10,11
Run Code Online (Sandbox Code Playgroud)
和预期的结果是
T1,T2,T3,T4,T5
7,8,9,10,11
A,B,-999,D,-999
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下代码:
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])
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为你可以简单地做:
import csv
SDict = {'T1': 'A', 'T2': 'B', 'T4': 'D'}
with open('file.csv', 'r+b') as f:
header = next(csv.reader(f))
dict_writer = csv.DictWriter(f, header, -999)
dict_writer.writerow(SDict)
Run Code Online (Sandbox Code Playgroud)
这是假设您使用的是 Python 2.X。此外,请注意不以换行符结尾的文件,否则您可能会以7,8,9,10,11A,B,-999,D,-999.
| 归档时间: |
|
| 查看次数: |
8572 次 |
| 最近记录: |