Python_合併多個資料夾下的多個csv檔案
阿新 • • 發佈:2019-02-14
# -*- coding:utf8 -*- import os.path import os import csv import re path = "D:\Datebase\data1\DataChallengeOne" #i = 0 files = os.listdir(path) with open('Email.csv', 'w+',newline ='', encoding='UTF-8') as csvfile: writer = csv.writer(csvfile) for f in files: # f是倒數第二級資料夾eg:2017-11-01的列表 #i = i + 1print(f) if (os.path.isdir(path + '/' + f)): # 判斷是否是資料夾 if (f[0] == '.'): # 排除隱藏資料夾 pass else: # 新增非隱藏檔案 for filenames in os.listdir(path + '/' + f): # filenames是3三級檔案的一個列表 print(filenames) path_1 = os.path.join(path ,f ,filenames )#路徑合成 if (filenames == "email.csv"): with open(path_1, 'r+', encoding='UTF-8') as fr: reader = csv.reader(fr, dialect='excel', delimiter=',' ) # 讀取檔案到list中 for row in reader: # 讀取list中每一行 if 'sport' in row: pass else: if ';' in row[7]: # 判斷是否符合劃分 a = re.split(';', row[7]) # 拆分的值儲存起來 #print (a) for i in a: row[7] = i #print (row[7]) writer.writerow([row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7],row[8]]) else: writer.writerow([row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8]]) else: continue
必須是先把csv檔案轉換為utf-8的格式才能轉換成功