Python使用chardet包自動檢測編碼

2021-09-07 13:35:42 字數 1410 閱讀 9273

chardet:charset detection

一旦自動檢測出編碼,就可以解碼了。

解碼時遇到錯誤有三種處理方式

utf.py

import chardet

import os

import sys

def utf(path, recursive=false):

print(path)

if os.path.isfile(path):

with open(path, 'rb+') as f:

content = f.read()

encoding = chardet.detect(content)['encoding']

if encoding != 'utf-8':

s = content.decode(encoding, errors='ignore')

f.write(s.encode('utf8', errors='ignore'))

else:

for i in os.listdir(path):

now_path = os.path.join(path, i)

if os.path.isdir(now_path) and recursive:

utf(now_path, recursive)

elif os.path.splitext(i)[1] == '.txt':

utf(now_path)

usage = """

python utf haha.txt #更改單檔案

python utf haha #更改資料夾下的全部文字檔案(.txt)

python utf haha recursive #遞迴更改資料夾下的全部文字檔案

"""if __name__ == '__main__':

# sys.ar** = ['main', r'c:\users\weidiao\desktop\電子書', 'recursive']

if len(sys.ar**) == 1:

print(usage)

exit()

if len(sys.ar**) > 3:

print(usage)

print('too many argument')

exit()

path = sys.ar**[1]

if not os.path.exists(sys.ar**[1]):

print(usage)

print('no this file or folder')

exit()

recursive = (len(sys.ar**) == 3 and sys.ar**[2] == 'recursive')

utf(path, recursive)

python 中 chardet 的使用

2.解壓檔案 將它解壓,得到其中的資料夾 chardet 並複製到 python安裝根目錄 lib site packages 下,確保這個位置可以被python引用到。pip install chardet安裝chardet模組 由於chardet是第三方的模組,所以我們需要先安裝chardet模...

python使用模組chardet判斷字元編碼

python中chardet 用來實現字串 檔案編碼檢測模板 2.chardet能夠檢測到的編碼方式 chardet 模組可以檢測以下編碼 3.chardet模組使用 使用chardet模組判斷字元編碼使用detect 函式即可 import chardet import urllib.reques...

python使用chardet判斷字串編碼的方法

最近利用python抓取一些網上的資料,遇到了編碼的問題。非常頭痛,總結一下用到的解決方案。linux中vim下檢視檔案編碼的命令 set fileencoding py程式設計客棧thon中乙個強力的編碼檢測包 chardet 使用方法非常簡單。linux下利用pip install charde...