这是我的数据:
ID,APPLICATION_ID,award_notice_date,budget_start,budget_end,core_project_num,ed_inst_type 1,3000011,7 / 1 / 1985,6 / 30/1986,A03AH000859,公共卫生学院 2,3000012,7 / 1 / 1985,6 / 30/1986,A03AH000860,公共卫生学院 3,3000013,7 / 1 / 1985,6 / 30/1986,A03AH000861,公共卫生学校
我想要的是:
“ID”, “APPLICATION_ID”, “budget_start”, “budget_end”, “core_project_num”, “ed_inst_type” 1,3000011,“7/1/1985”,“6/30/1986”,“A03AH000859”,“公共卫生学校” 2,3000012,“7/1/1985”,“6/30/1986”,“A03AH000860”,“公共卫生学校” 3,3000013,“7/1/1985”,“6/30/1986”,“A03AH000861”,“公共卫生学校”
这是我的代码:
import csv
import sys
input_file = str(sys.argv[1])
output_file = str(sys.argv[2])
ifile = open(input_file)
reader = csv.reader(ifile)
ofile = open(output_file, 'w')
writer = csv.writer(ofile, delimiter=',', quoting=csv.QUOTE_NONNUMERIC)
for row in reader:
writer.writerow(row)
问题: 为所有数据添加双引号(包括数字和非数字数据)
“ID”, “APPLICATION_ID”, “budget_start”, “budget_end”, “core_project_num”, “ed_inst_type” “1”,“3000011”,“7/1/1985”,“6/30/1986”,“A03AH000859”,“公共卫生学校” “2”,“3000012”,“7/1/1985”,“6/30/1986”,“A03AH000860”,“公共卫生学校” “3”,“3000013”,“7/1/1985”,“6/30/1986”,“”,“A03AH000861”,“公共卫生学校”
答案 0 :(得分:2)
您可以使用以下内容将整数字段转换为整数值:
for row in reader:
row = [int(x) if re.match(r'-?\d+$', x) else x for x in row]
writer.writerow(row)
只需添加
import re
在您的计划开始时。