質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1686閲覧

chardetにて文字コード推測を大きいファイルで速度良くしたい

color

総合スコア90

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/04/05 03:33

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")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2021/04/05 05:02

> shift-jisの処理が重く というのは、Shift-JISのファイルだけ時間がかかるという意味でしょうか? 単純には、ファイルを全部読みこんでいるせいなのでは? と思ってしまいますが。
color

2021/04/05 05:09

サイズ的にはutf-8の方が重いです。
color

2021/04/05 05:10

detector.doneが上手く作用していない様な挙動ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問