> shift-jisの処理が重く
というのは、Shift-JISのファイルだけ時間がかかるという意味でしょうか?
単純には、ファイルを全部読みこんでいるせいなのでは? と思ってしまいますが。
chardetにて大きいファイルの文字コードを推測したいのですが、
shift-jisの処理が重く、軽くなる方法を教授頂ければ幸いです。
やりたい事は行単位ではなくバイト単位取得して速度改善がしたいです。
python
1# サンプルファイルです。 2# https://firestorage.jp/download/c1a6ca47104d65a7a37c16f91ad59b0f7f39f9ef 3# https://firestorage.jp/download/d93ada8c225856dfeb65a2f48c321fe4e181c504 4 5import contextlib 6import chardet 7import os 8import io 9 10def detect_encoding(filename): 11 chunk_size = 100 12 with open(filename, 'rb') as f: 13 b = f.read() 14 buf = io.BytesIO(b) 15 16 with contextlib.closing(chardet.UniversalDetector()) as detector: 17 while True: 18 chunk = buf.read(chunk_size) 19 if not chunk: 20 break 21 detector.feed(chunk) 22 if detector.done: 23 break 24 return detector.result['encoding'] 25 26 27def encode(src_filename): 28 src_encoding = detect_encoding(src_filename) 29 print(src_encoding) 30 31 32if __name__ == '__main__': 33 encode(src_filename="./shiftjis_1.txt") 34 # encode(src_filename="./utf8_1.txt")
あなたの回答
tips
プレビュー