用Python把csv文件批量修改編碼為UTF-8格式并轉(zhuǎn)為Excel格式的方法
有時(shí)候用excel打開一個(gè)csv文件,中文全部顯示亂碼。然后手動(dòng)用notepad++打開,修改編碼為utf-8并保存后,再用excel打開顯示正常。
使用Python通過很少代碼就能將上面過程自動(dòng)化。
導(dǎo)入3個(gè)模塊
import pandas as pd import os import chardet
chardet 模塊用于得到文件的編碼格式,pandas 按照這個(gè)格式讀取,然后保存為xlsx格式。
獲取filename文件的編碼格式
def get_encoding(filename): """ 返回文件編碼格式 """ with open(filename,'rb') as f: return chardet.detect(f.read())['encoding']
文件轉(zhuǎn)碼處理
保存為utf-8編碼xlsx格式文件,支持csv, xls, xlsx 格式的文件亂碼處理。需要注意,如果讀入文件為csv格式,保存時(shí)要使用xlsx格式:
def to_utf8(filename): """ 保存為 to_utf-8 """ encoding = get_encoding(filename) ext = os.path.splitext(filename) if ext[1] =='.csv': if 'gb' in encoding or 'GB' in encoding: df = pd.read_csv(filename,engine='python',encoding='GBK') else: df = pd.read_csv(filename,engine='python',encoding='utf-8') df.to_excel(ext[0]+'.xlsx') elif ext[1]=='.xls' or ext[1] == '.xlsx': if 'gb' in encoding or 'GB' in encoding: df = pd.read_excel(filename,encoding='GBK') else: df = pd.read_excel(filename,encoding='utf-8') df.to_excel(filename) else: print('only support csv, xls, xlsx format')
批量轉(zhuǎn)換
上面函數(shù)實(shí)現(xiàn)單個(gè)文件轉(zhuǎn)化,下面batch_to_utf8 實(shí)現(xiàn)目錄 path 下所有后綴為ext_name文件的批量亂碼轉(zhuǎn)化:
def batch_to_utf8(path,ext_name='csv'): """ path下,后綴為 ext_name的亂碼文件,批量轉(zhuǎn)化為可讀文件 """ for file in os.listdir(path): if os.path.splitext(file)[1]=='.'+ext_name: to_utf8(os.path.join(path,file))
使用
if __name__ == '__main__': batch_to_utf8('.') # 對(duì)當(dāng)前目錄下的所有csv文件保存為xlsx格式,utf-8編碼的文件
以上就是用Python把csv文件批量修改編碼為UTF-8格式并轉(zhuǎn)為Excel格式的方法的詳細(xì)內(nèi)容,更多關(guān)于Python UTF-8格式并轉(zhuǎn)為Excel格式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Windows下用py2exe將Python程序打包成exe程序的教程
這篇文章主要介紹了Windows下用py2exe將Python程序打包成exe程序的教程,文中主要針對(duì)Python3.x版本進(jìn)行說明,需要的朋友可以參考下2015-04-04networkx庫(kù)繪制帶權(quán)圖給無權(quán)圖加權(quán)重輸出
這篇文章主要為大家介紹了Python?networkx庫(kù)繪制帶權(quán)圖給無權(quán)圖加權(quán)重并輸出權(quán)重的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法
這篇文章主要介紹了python創(chuàng)建一個(gè)最簡(jiǎn)單http webserver服務(wù)器的方法,實(shí)例分析了Python操作http創(chuàng)建服務(wù)器端的相關(guān)技巧,需要的朋友可以參考下2015-05-05Python利用柯里化實(shí)現(xiàn)提高代碼質(zhì)量
柯里化(Currying)是函數(shù)式編程中的一個(gè)重要概念,它可以將一個(gè)多參數(shù)函數(shù)轉(zhuǎn)化為一系列單參數(shù)函數(shù)的組合,本文將詳細(xì)解釋什么是柯里化,如何在Python中實(shí)現(xiàn)柯里化,感興趣的可以了解下2024-01-01PyTorch讀取Cifar數(shù)據(jù)集并顯示圖片的實(shí)例講解
今天小編就為大家分享一篇PyTorch讀取Cifar數(shù)據(jù)集并顯示圖片的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07