我想使用一些腳本語言(如bash腳本或python)合併2 csv文件。合併2 csv文件與一個唯一的列,但不同的標題
1st.csv(此數據是從MySQL查詢)
member_id,姓名,電子郵件,說明
03141,EJ,EJ @ domain.com,酷
00002,JES,JES @域名.COM,好
00002,charmie,魅力@ domain.com,甜
2nd.csv(從MongoDB的查詢)
ID,地址,CREATE_DATE
00002,someCity,20150825
00003,newCity,20140102
11111,,20150808
的例子不是實際的,雖然我知道有些從QSL的member_id的和mongodb的id是一樣的。 (*我希望我的輸出會是這樣的)
desiredoutput.csv
meber_id,姓名,電子郵件,遞減,地址,CREATE_DATE
03141,EJ,EJ @ domain.com,涼爽,,
00002,JES,JES @ domain.com,好,someCity,20150825
00002,charmie,魅力@ domain.com,甜,
11111 ,,,, 20150808
的幫助將不勝感激。在此先感謝
#########################################################################
#!/usr/bin/python
import csv
import itertools as IT
filenames = ['1st.csv', '2nd.csv']
handles = [open(filename, 'rb') for filename in filenames]
readers = [csv.reader(f, delimiter=',') for f in handles]
with open('desiredoutput.csv', 'wb') as h:
writer = csv.writer(h, delimiter=',', lineterminator='\n',)
for rows in IT.izip_longest(*readers, fillvalue=['']*2):
combined_row = []
for row in rows:
row = row[:1] # column where 1 know there are identical data
if len(row) == 1:
combined_row.extend(row)
else:
combined_row.extend(['']*1)
writer.writerow(combined_row)
for f in handles:
f.close()
#########################################################################
剛讀,並試圖在這個網站代碼(操作)太
你有沒有問之前做了什麼? – itwasntme
是的我已經嘗試使用bash進行合併,發生(它合併,但它確實在單個信息中創建重複而不是合併)im新的腳本請求幫助 – chareon
使用正則表達式在csv中查找匹配的模式。 – itwasntme