python匯入xlsx轉為csv_Python 拆分工作表為單個工作簿
技術標籤:python匯入xlsx轉為csv拆分工作簿為多個檔案
將一個工作簿裡的各個sheet工作表,快速拆分成單個工作簿,並統一放入某個資料夾中。
檔案路徑為:C:\Users\12869\Desktop\test_data\canyindata.xlsx,
在canyindata的工作簿裡有如下各個sheet工作表:
本次需匯入以下模組:#_*_coding:utf-8_*_importxlrdimport pandas as pdimport os
關於#_*_coding:utf-8_*_,解釋大概是防止程式碼中出現中文報錯,為了解決這個問題就需要把檔案的編碼格式改成utf-8,輸入這個程式碼就可以讓py的原始碼有中文。注意:python3已經預設支援中文。
# 拆分工作表為單個工作簿path = r"C:\Users\12869\Desktop\test_data\canyindata.xlsx" #工作簿路徑workbook = xlrd.open_workbook(path) # 開啟工作簿sheetnames = workbook.sheet_names() # 獲取工作簿內sheet名稱setdir = os.path.dirname(path) # 獲取工作簿所在路徑newdir = setdir + "\csv/" os.mkdir(newdir) # 結合上一行,在工作簿路徑下,新建CSV資料夾for i in sheetnames: # 遍歷工作簿內各個sheet getdata = pd.read_excel(path,i) # 讀取各個sheet內的內容getdata.to_csv(newdir+i+".csv",encoding='utf-8-sig')#將讀取到的內容匯出成單個以sheet名稱命名的CSV檔案,encoding防止表格內容的中文亂碼
以上程式碼需要注意的點是,
1、path = r"C:\Users\12869\Desktop\test_data\canyindata.xlsx"
python讀檔案需要輸入的目錄引數,列出以下例子:
path1= r"C:\Users\12869\Desktop\test_data\canyindata.xlsx"
path2 =r"C:\\Users\\12869\\Desktop\\test_data\\canyindata.xlsx"
path3 =r"C:/Users/12869/Desktop/test_data/canyindata.xlsx"
開啟檔案函式open()中的引數可以是path也可以是path1、path2、path3。
path1:"\"為字串中的特殊字元,加上r後變為原始字串,則不會對字串中的類似"\t"、"\r" 等的字串進行轉義。
path2:用一個"\"取消第二個"\"的特殊轉義作用,即為"\\"。
path3:用正斜槓做目錄分隔符同樣可以獲取路徑資訊。
2、newdir = setdir + "\csv/",新建CSV資料夾,注意後加上"/",因為你要在該資料夾內放入得到的工作簿。類似在上面path2、path3那樣子,資料夾路徑與具體檔案之間的“\\”或是“/”,發揮同種作用。因此這裡改為 newdir = getdir + "\csv\\" 也可。
最終得到拆分結果如下: