所以我有两个的CSV文件。一种是按以下格式:不是在列中的所有数据将被复制到另一个csv文件
last name, first name, Number
另一种是格式如下:
number, quiz
我希望创建一个需要这两个CSV文件,并给了我一个文件下面的一个新的输出文件格式:
last name, first name, number, quiz.
我已经尝试了下面的代码,它的工作原理,但只适用于前两个输入文件中列出的第一人。我不确定我做错了什么。另外,我不想假定两个输入文件遵循相同的顺序。
import sys, re
import numpy as np
import smtplib
from random import randint
import csv
import math
col = sys.argv[1]
source = sys.argv[2]
target = sys.argv[3]
newtarg = sys.argv[4]
input_source = csv.DictReader(open(source))
input_target = csv.DictReader(open(target))
data = {}
t =()
for row in input_target:
t = row['First Name'], row['number']
for rows in input_source:
if rows['number'] == row['number']:
t = t + (rows[col],)
name = row['Last Name']
data[name] = [t]
rows.next()
row.next()
with open(newtarg,'w') as out:
csv_out=csv.writer(out)
for key, val in data.items():
csv_out.writerow([key] + list(val))
好吧我认为我的工作很好我唯一的问题是当我合并文件。我得到一个分隔合并的列 – K22
@Kate这可能是因为你在第一个输入文件中有一个额外的列。查看我最近编辑的'columns ='参数为'.to_csv()'。这样,您可以明确地控制打印哪些列。 –