文字エンコーディングでファイルを探す

文字エンコーディングでファイルを探す

ファイルをUTF-8にデコードできない長期間実行されるPythonスクリプトがあります。エラーメッセージは、どのファイルが失敗したかを知らせず、場所0x81のバイトをデコードできないことを示しています194。ファイルがどのフォルダーにあるかはわかりますが、そのサブツリー内の何千ものファイルのうちどのフォルダーにあるかはわかりません。このファイル(およびその他の類似ファイル)を見つけるにはどのようなオプションが必要ですか? Bashに美しい一行文がありますか?

表示内容を印刷するようにスクリプトを変更し、一度に1つのファイルを変更するために再実行するのは、スクリプトの実行に数時間かかるため、ほとんどオプションではありません。 Pythonでディレクトリウォーカーを書くのはあまりにも多くの作業のようです。

ベストアンサー1

isutf8パッケージで使用moreutils:

find . -name '*.py' -exec isutf8 {} +

または:

find . -name '*.py' | xargs isutf8

(後者はファイル名に改行文字がないと仮定します.)

おすすめ記事