Python判斷文件和字符串編碼類型的實例
python判斷文件和字符串編碼類型可以用chardet工具包,可以識別大多數(shù)的編碼類型。但是前幾天在讀取一個Windows記事本保存的txt文件時,GBK卻被識別成了KOI8-R,無解。
然后就自己寫了個簡單的編碼識別方法,代碼如下:
coding.py
# 說明: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 '未知的字符編碼類型'
說明:file_encoding方法用于判斷文件編碼類型,參數(shù)為文件路徑;string_encoding方法用于判斷字符串編碼類型,參數(shù)為字符串對應的字節(jié)數(shù)據(jù)
使用示例:
import coding file_name = input('請輸入待識別文件路徑:\n') encoding = coding.file_encoding(file_name) print(encoding)
以上這篇Python判斷文件和字符串編碼類型的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù)
這篇文章主要介紹了Python-VTK隱式函數(shù)屬性選擇和剪切數(shù)據(jù),VTK,是一個開放資源的免費軟件系統(tǒng),主要用于三維計算機圖形學、圖像處理和可視化,下面文章主題相關詳細內容需要的小伙伴可以參考一下2022-04-04numpy中以文本的方式存儲以及讀取數(shù)據(jù)方法
今天小編就為大家分享一篇numpy中以文本的方式存儲以及讀取數(shù)據(jù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06Python中的split()、rsplit()、splitlines()的區(qū)別解析
Python提供了三種字符串分割的方法:split()、rsplit()和splitlines(),本文主要通過案例介紹這三種字符串分割函數(shù)的區(qū)別,感興趣的朋友一起看看吧2023-12-12Pyspider進行API接口抓取和數(shù)據(jù)采集的實現(xiàn)
Pyspider是一個基于Python的強大的網(wǎng)絡爬蟲框架,它提供了豐富的功能和靈活的擴展性,使我們可以輕松地進行數(shù)據(jù)的抓取和處理,本文主要介紹了Pyspider進行API接口抓取和數(shù)據(jù)采集的實現(xiàn),感興趣的可以了解一下2023-09-09python selenium實現(xiàn)發(fā)送帶附件的郵件代碼實例
這篇文章主要介紹了python selenium實現(xiàn)發(fā)送帶附件的郵件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-12-12TensorFlow實現(xiàn)iris數(shù)據(jù)集線性回歸
這篇文章主要介紹了TensorFlow實現(xiàn)iris數(shù)據(jù)集線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09python中pandas對多列進行分組統(tǒng)計的實現(xiàn)
分組統(tǒng)計在很多時候都需要用到,可以實現(xiàn)很多數(shù)據(jù)庫函數(shù)的功能。本文主要介紹了python中pandas對多列進行分組統(tǒng)計的實現(xiàn),感興趣的可以了解一下2021-06-06