ファイルをUTF-8にデコードできない長期間実行されるPythonスクリプトがあります。エラーメッセージは、どのファイルが失敗したかを知らせず、場所0x81
のバイトをデコードできないことを示しています194
。ファイルがどのフォルダーにあるかはわかりますが、そのサブツリー内の何千ものファイルのうちどのフォルダーにあるかはわかりません。このファイル(およびその他の類似ファイル)を見つけるにはどのようなオプションが必要ですか? Bashに美しい一行文がありますか?
表示内容を印刷するようにスクリプトを変更し、一度に1つのファイルを変更するために再実行するのは、スクリプトの実行に数時間かかるため、ほとんどオプションではありません。 Pythonでディレクトリウォーカーを書くのはあまりにも多くの作業のようです。
ベストアンサー1
isutf8
パッケージで使用moreutils
:
find . -name '*.py' -exec isutf8 {} +
または:
find . -name '*.py' | xargs isutf8
(後者はファイル名に改行文字がないと仮定します.)