按字符编码查找文件

Fil*_*und 5 shell character-encoding find python

我有一个长时间运行的 python 脚本,它无法 utf-8 解码文件。错误消息没有告诉我它在哪个文件上失败了,只是它无法0x81在 position解码字节194。我知道文件在哪个文件夹中,但不知道该子树中某处的数千个文件中的哪个文件夹。查找此文件(以及其他类似文件)的选项有哪些?bash 中有一个漂亮的单线吗?

更改脚本以打印它正在查看的内容并重新运行它,一次修复一个文件,这几乎不是一种选择,因为运行一次脚本需要很多小时。用 Python 编写目录遍历器似乎工作量太大了。

phk*_*phk 6

isutf8从包中使用moreutils

find . -name '*.py' -exec isutf8 {} +
Run Code Online (Sandbox Code Playgroud)

或者:

find . -name '*.py' | xargs isutf8
Run Code Online (Sandbox Code Playgroud)

(后者假设文件名没有换行符。)