熱線電話:13121318867

登錄
首頁精彩閱讀Python判斷文件和字符串編碼類型的實例
Python判斷文件和字符串編碼類型的實例
2018-02-18
收藏

Python判斷文件和字符串編碼類型的實例

python判斷文件和字符串編碼類型可以用chardet工具包,可以識別大多數的編碼類型。但是前幾天在讀取一個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前綴字節
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: 字節數據\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方法用于判斷文件編碼類型,參數為文件路徑;string_encoding方法用于判斷字符串編碼類型,參數為字符串對應的字節數據

使用示例:

import coding
file_name = input('請輸入待識別文件路徑:\n')
encoding = coding.file_encoding(file_name)
print(encoding)

以上這篇Python判斷文件和字符串編碼類型的實例就是小編分享給大家的全部內容了

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢