0
以下のスクリプトでは、ヘッダーの名前を変更したり、名前を変更したりする方法がわかりません。w.writerowが終了した後にpython renameヘッダー行
import csv,time,string,os
print "rendering report. This will take a few minutes..."
raw_report = "\\\\network\\x\\RAWREPORT.csv"
today = time.strftime("%Y-%m-%d")
fields = ["As of Date", "EB", "Cycle", "Col", "APP Name", "Home Country" ]
with open(raw_report) as infile, open("c:\\upload\\test_" + today + ".csv", "wb") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
w.writeheader()
for row in r:
w.writerow(row)
このスクリプトは正常に動作し、それが約90列を持つ.csvファイルのうち、6列がかかりますが、私の出力ファイルにfields
にのみ6列を書くために、私は名前によってそれらを呼び出す必要があります。
しかし、最終的には別の名前を付けてください(例:"As of Date", "EB"
の代わりに"order_date", "phone_number"...
)。
私は最初の行をスキップし、自分を書くのアプローチを試してみました:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
next(r, None)
w.writerow(["order_date","phone_number",...])
が、名前が一致しないため、その後のpythonを新しいファイルにコピーする列を知りません。
私は何をしようとしていますか?名前ではなく数値でコピーしたい列を参照できますか?すべてコピーしたら最初の行の値を変更して元に戻す方法はありますか?