1. 程式人生 > >Python_合併多個資料夾下的多個csv檔案

Python_合併多個資料夾下的多個csv檔案

# -*- 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 + 1
print(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的格式才能轉換成功