将csv檔案或txt檔案轉為表格excel檔案,使用Python其實是比較簡單的,隻需要編寫1個簡單的函數即可。詳細介紹如下:
一、前提條件
必須是标準的csv檔案格式,即逗号分隔值檔案格式csv檔案。
如果是txt檔案,檔案中每行内的值也必須是以英文逗号分隔開的。
如下所示的:
csv檔案
逗号分隔值的txt檔案
我們看到不論是csv檔案還是txt檔案,每行内的值都必須是英文狀态下的逗号進行分隔的。
如果不是英文逗号,而是中文逗号分隔值呢,下面編寫的代碼會導緻無法準确轉為表格檔案的。類似地,如果tab鍵分隔值、其它符号分隔值,都是無法準确轉為表格檔案的。
是以,要使用下面的代碼轉換csv檔案或txt檔案,務必確定檔案中的分隔符是英文狀态下的逗号。
二、具體轉換的代碼
import openpyxl #導入表格子產品
import csv #導入csv子產品
#以下定義一個函數,該函數的功能是轉為csv檔案為表格檔案。
def csv_to_excel(csv_file,excel_file): #2個參數分别是檔案完整路徑,這裡csv_file可以是字尾為.txt的檔案
csv_data = []
with open(csv_file) as f: #打開csv檔案或txt檔案
for row in csv.reader(f): #讀取檔案中的每行
csv_data.append(row) #将讀取的每行内容儲存為清單的每個元素
wb = openpyxl.Workbook() #建立工作薄檔案
sheet = wb.active #擷取目前的工作表
for row in csv_data: #讀取每個元素,即csv的每行
sheet.append(row) #在工作表中添加每行
wb.save(excel_file) #儲存生成的工作簿檔案
#下面是調用定義的函數,執行具體的轉換任務。
csv_to_excel('e:/1.txt','e:/new.xlsx') #将e盤下的1.txt檔案,轉換為new.xlsx表格
print('完成') #執行完成後,提示執行結束!
三、在python的IDLE中代碼如下圖所示
在上面代碼處于目前狀态時,按下f5或者點選菜單欄中的run下面的按鈕,即可執行上述的代碼。
同樣,修改倒數第2行中的2個參數,即可轉換本地csv檔案或txt檔案。
四、有沒有必要将csv檔案轉為excel檔案
如果csv檔案資料量超過10萬行,不建議轉為excel,因為在excel中的行數太大時,一是表格反應速度會變慢,有時讓人無法接受,二是在進行資料處理時容易出錯。對于大資料量的情況,使用python直接讀取csv檔案并進行分析,會更加友善簡單高效。
如果csv檔案資料量較少,可以根據需要,決定是否轉為excel檔案。