[英]How to add a custom column with csv.writer
我有一個python腳本,該腳本需要一個大文件,並且僅復制我想要的幾列,同時還在新文件中寫入新的自定義標頭。
import csv,time,string,os, requests
og_file = "\\\\network\\x\\test.csv"
today = time.strftime("%Y-%m-%d")
#fields to keep from original file
fields = ["As Of Date", "Ph", "Home Country"]
with open(og_file) as infile, open("c:\\upload\\output_" + today + ".csv", "wb") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
wtr = csv.writer( outfile )
wtr.writerow(["upload_date", "phone", "country"])
for row in r:
w.writerow(row)
在編寫此文件時,我需要在每行的開頭創建一個附加列,並從1開始到n一起添加一個數字,因此輸出如下所示:
id | upload_date | phone | country
1 2012-01-01 555-1234 USA
2 2012-02-01 555-1235 USA
3 2012-03-01 555-1236 USA
4 2012-04-01 555-1237 USA
我不確定該怎么做。
fields = ["id"] + fields # so it'll write later
with open(og_file) as infile, open("c:\\upload\\output_" + today + ".csv", "wb") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
wtr = csv.writer( outfile )
wtr.writerow(["id","upload_date", "phone", "country"])
for i,row in enumerate(r, start=1):
row["id"] = i
w.writerow(row)
您可以為id
列使用itertools.count
對象:
from itertools import count
with open(og_file) as infile, open("c:\\upload\\output_" + today + ".csv", "wb") as outfile:
r = csv.DictReader(infile)
w = csv.DictWriter(outfile, fields, extrasaction="ignore")
wtr = csv.writer( outfile )
wtr.writerow(["id", "upload_date", "phone", "country"])
c = count(1)
for row in r:
row['id'] = next(c)
w.writerow(row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.