![](/img/trans.png)
[英]how to add a new column (with a header name) at the 2nd column of the existing csv file?
[英]How to add new column(header) to a csv file from command line arguments
以下代碼的輸出:
import datetime
import csv
file_name='sample.txt'
with open(file_name,'rb') as f:
reader = csv.reader(f,delimiter=",")
#headers = reader.next()
p=[]
for row in reader:
row[0] = row[0].zfill(6)
row[2] = row[2].zfill(6)
row[3] = row[3].zfill(6)
row[4] = row[4].zfill(6)
row[1] = row[1][5:7] + "-" + row[1][8:10] + "-" + row[1][:4]
p.append(row[:5])
print p
with open('names.txt', 'wb') as ofile:
writer = csv.writer(ofile)
for row in p:
writer.writerow(row)
以下是:-
User_ID,--Date,0Num_1,0Num_2,Com_ID
000101,04-13-2015,000012,000021,001011
000102,04-03-2014,000001,000007,001002
000103,06-05-2013,000003,000004,000034
000104,12-31-2012,000004,000009,001023
000105,09-09-2011,000009,000005,000104
我想從命令行將新列添加到csv文件中。 例如python script_name.py Dept_ID Location將為Dept_ID和Comp_ID旁邊的Location創建列。
任何人都可以在這里指導我!
請參閱這篇文章 ,其中建議如下:
header = ['User_ID','--Date','0Num_1','0Num_2','Com_ID']
writer = csv.DictWriter(outcsv, fieldnames = header)
writer.writeheader()
writer.writerows({col: row} for row, col in zip(header, p))
從系統參數解析額外的列,請使用sys.argv
import sys
extra_headers = sys.argv
header.extend(sys.argv)
n = len(sys.argv)
writer = csv.DictWriter(outcsv, fieldnames = header)
writer.writeheader()
col_fill = ''
# extend p with two columns of blank data
writer.writerows({col: row_item} for row in p for row_item,col in zip(row+[col_fill]*n,header))
在這里,我遍歷每一行,然后創建一個字典,以便按順序將數據分配給每一列。 注意[col_fill]*n
這將創建一個與col_fill
相同的項目列表,這些項目將用於填充通過命令行參數解析的其他列。
在此示例中,命令行參數將解析為:
$ python script_name.py Dept_ID Location
並會創建:
User_ID,--Date,0Num_1,0Num_2,Com_ID,Dept_ID,Location
000101,04-13-2015,000012,000021,001011,,
000102,04-03-2014,000001,000007,001002,,
000103,06-05-2013,000003,000004,000034,,
000104,12-31-2012,000004,000009,001023,,
000105,09-09-2011,000009,000005,000104,,
您可以使用sys.argv從命令行獲取參數。
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
$ python script_name.py Dept_ID Location
Number of arguments: 4 arguments.
Argument List: ['script_name.pyy', 'Dept_ID Locatio']
從命令行獲取參數后,可以將其添加到文件中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.