用DictWriter读写csv

时间:2017-08-18 19:50:51

标签: python python-3.x csv

是否可以使用DictWriter读取和写入现有的csv。如果没有,是否有任何可用的包可以执行以下操作:

CSV:

event_type, flight_number, test_result
'ETA', '1234',''

脚本:

testData = csv.DictReader(open('test_data.csv', 'rU'))

for row in testData:

    eventType = row['event_type'].strip()
    flightNumber = row['flight_number'].strip()
    result = 6
    row['test_result'] = result

经过计算,我想写一下' test_result'的当前行。列结果的值。

1 个答案:

答案 0 :(得分:1)

经过多次修补后,这种方法似乎最好,直到找到更好的方法。

import csv, os

testData = csv.DictReader(open('test_data.csv', 'rU'))
rowHeaders = testData.fieldnames
resultFile = open('result_data.csv', 'w', newline='')
csvWriter = csv.DictWriter(resultFile, rowHeaders)
csvWriter.writeheader()
resultFile.close()

resultFile = open('result_data.csv', 'a', newline='')
csvWriter = csv.DictWriter(resultFile, rowHeaders)

for row in testData:

    eventType = row['event_type'].strip()
    flightNumber = row['flight_number'].strip()
    result = 7

    csvWriter.writerow({'event_type': eventType, 
                        'flight_number': flightNumber, 
                        'test_result': result})

它创建一个具有相同精确数据+附加数据的新文件

输出result_data.csv:

event_type, flight_number, test_result
ETA, 1234,7
ETD, 1034,7