Python判斷文件和字符串編碼類型的實(shí)例
python判斷文件和字符串編碼類型可以用chardet工具包,可以識(shí)別大多數(shù)的編碼類型。但是前幾天在讀取一個(gè)Windows記事本保存的txt文件時(shí),GBK卻被識(shí)別成了KOI8-R,無(wú)解。
然后就自己寫了個(gè)簡(jiǎn)單的編碼識(shí)別方法,代碼如下:
coding.py
# 說(shuō)明:UTF兼容ISO8859-1和ASCII,GB18030兼容GBK,GBK兼容GB2312,GB2312兼容ASCII CODES = ['UTF-8', 'UTF-16', 'GB18030', 'BIG5'] # UTF-8 BOM前綴字節(jié) UTF_8_BOM = b'\xef\xbb\xbf' # 獲取文件編碼類型 def file_encoding(file_path): """ 獲取文件編碼類型\n :param file_path: 文件路徑\n :return: \n """ with open(file_path, 'rb') as f: return string_encoding(f.read()) # 獲取字符編碼類型 def string_encoding(b: bytes): """ 獲取字符編碼類型\n :param b: 字節(jié)數(shù)據(jù)\n :return: \n """ # 遍歷編碼類型 for code in CODES: try: b.decode(encoding=code) if 'UTF-8' == code and b.startswith(UTF_8_BOM): return 'UTF-8-SIG' return code except Exception: continue return '未知的字符編碼類型'
說(shuō)明:file_encoding方法用于判斷文件編碼類型,參數(shù)為文件路徑;string_encoding方法用于判斷字符串編碼類型,參數(shù)為字符串對(duì)應(yīng)的字節(jié)數(shù)據(jù)
使用示例:
import coding file_name = input('請(qǐng)輸入待識(shí)別文件路徑:\n') encoding = coding.file_encoding(file_name) print(encoding)
以上這篇Python判斷文件和字符串編碼類型的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python使用chardet判斷字符串編碼的方法
- Python 十六進(jìn)制整數(shù)與ASCii編碼字符串相互轉(zhuǎn)換方法
- Python中的字符串操作和編碼Unicode詳解
- python字符串與url編碼的轉(zhuǎn)換實(shí)例
- 詳解Python當(dāng)中的字符串和編碼
- python判斷字符串編碼的簡(jiǎn)單實(shí)現(xiàn)方法(使用chardet)
- Python中還原JavaScript的escape函數(shù)編碼后字符串的方法
- 淺談python下含中文字符串正則表達(dá)式的編碼問(wèn)題
- python字符串編碼識(shí)別模塊chardet簡(jiǎn)單應(yīng)用
- python中字符串的編碼與解碼詳析
相關(guān)文章
Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù)
這篇文章主要介紹了Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù),VTK,是一個(gè)開(kāi)放資源的免費(fèi)軟件系統(tǒng),主要用于三維計(jì)算機(jī)圖形學(xué)、圖像處理和可視化,下面文章主題相關(guān)詳細(xì)內(nèi)容需要的小伙伴可以參考一下2022-04-04numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法
今天小編就為大家分享一篇numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python中的split()、rsplit()、splitlines()的區(qū)別解析
Python提供了三種字符串分割的方法:split()、rsplit()和splitlines(),本文主要通過(guò)案例介紹這三種字符串分割函數(shù)的區(qū)別,感興趣的朋友一起看看吧2023-12-12Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn)
Pyspider是一個(gè)基于Python的強(qiáng)大的網(wǎng)絡(luò)爬蟲(chóng)框架,它提供了豐富的功能和靈活的擴(kuò)展性,使我們可以輕松地進(jìn)行數(shù)據(jù)的抓取和處理,本文主要介紹了Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn),感興趣的可以了解一下2023-09-09python selenium實(shí)現(xiàn)發(fā)送帶附件的郵件代碼實(shí)例
這篇文章主要介紹了python selenium實(shí)現(xiàn)發(fā)送帶附件的郵件代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python自動(dòng)化測(cè)試框架pytest的詳解安裝與運(yùn)行
這篇文章主要為大家介紹了Python自動(dòng)化測(cè)試框架pytest的簡(jiǎn)介以及安裝與運(yùn)行,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10TensorFlow實(shí)現(xiàn)iris數(shù)據(jù)集線性回歸
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)iris數(shù)據(jù)集線性回歸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09一起來(lái)學(xué)習(xí)一下python的數(shù)字類型
這篇文章主要為大家詳細(xì)介紹了python的數(shù)字類型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01python中pandas對(duì)多列進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)
分組統(tǒng)計(jì)在很多時(shí)候都需要用到,可以實(shí)現(xiàn)很多數(shù)據(jù)庫(kù)函數(shù)的功能。本文主要介紹了python中pandas對(duì)多列進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn),感興趣的可以了解一下2021-06-06