2017-08-18 10 views
1

DictWriterで既存の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」列の現在の行に書きたくない場合は、次のことを行うことができます利用可能なパッケージがあります結果の値

+0

はあなたのファイル内の各行を読み取り、新しいに出力を書き込むことを検討していますファイル? – somil

+0

私はテストを実行しているので、結果は同じファイルになければなりません。このようなファイルをExcelで実行できるパッケージがあれば、それも受け取ります。 – jeesan485

答えて

0

この方法は、私がより良い方法を見つけるまでは最高のようです。

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 
+0

これは正しいですが、結果を閉じるためのresult_dataファイルにはポイントがありません。追加モードですぐに再度開くことができます: 'csvWriter.writeheader()'の直後に 'for row in testData:... ' –

+0

それを指摘してくれてありがとう。 – jeesan485

関連する問題