1. 程式人生 > 其它 >python匯入xlsx轉為csv_Python 拆分工作表為單個工作簿

python匯入xlsx轉為csv_Python 拆分工作表為單個工作簿

技術標籤:python匯入xlsx轉為csv拆分工作簿為多個檔案

將一個工作簿裡的各個sheet工作表,快速拆分成單個工作簿,並統一放入某個資料夾中。

檔案路徑為:C:\Users\12869\Desktop\test_data\canyindata.xlsx,

在canyindata的工作簿裡有如下各個sheet工作表:

fa51f50085b801a41462ba1989d6f1e2.png 本次需匯入以下模組:
#_*_coding:utf-8_*_importxlrdimport pandas as pdimport os

關於#_*_coding:utf-8_*_,解釋大概是防止程式碼中出現中文報錯,為了解決這個問題就需要把檔案的編碼格式改成utf-8,輸入這個程式碼就可以讓py的原始碼有中文。注意:python3已經預設支援中文。

a3c7400eb319e6fcd95081c067e85809.png

# 拆分工作表為單個工作簿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\\" 也可。

最終得到拆分結果如下:

c772abfc3cec65cb64614d2ef93c559d.png