欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2017年12月21日 09:38:50   作者:淺醉櫻花雨  
下面小編就為大家分享一篇Python判斷文件和字符串編碼類型的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論