Я пытаюсь отфильтровать файлы в каталоге на основе mimetype. Ниже приведен мой список файлов, и я хотел получить только текстовые файлы ASCII, исключая исходные коды, такие как C и python.
1dW6WJMN.txt: Python script, ASCII text executable
9dJbZ3Vv.txt: ASCII text, with CRLF line terminators
9dQsmVU4.txt: Python script, UTF-8 Unicode text executable, with CRLF line terminators
A5hENB7D.txt: C source, ASCII text, with CRLF line terminators
cidREdJG.txt: UTF-8 Unicode text, with very long lines, with CRLF line terminators
exhjw1gK.txt: UTF-8 Unicode text, with CRLF line terminators
iu7LPrqz.txt: ASCII text, with very long lines, with CRLF line terminators
LsDHarjD.txt: ASCII text
nLABt1a6.txt: C source, ASCII text, with CRLF line terminators
nqMDtVuz.txt: ASCII text, with CRLF line terminators
nqPuYb23.txt: UTF-8 Unicode text, with CRLF line terminators
nQtzxhfQ.txt: ASCII text, with CRLF line terminators
NQuLWwpt.txt: ASCII text, with CRLF line terminators
nQXeJeED.txt: ASCII text, with CRLF line terminators
nqXGv6ws.txt: UTF-8 Unicode text, with CRLF line terminators
nQxr4Hwi.txt: ASCII text, with CRLF line terminators
nQxr4Hwii.txt: empty
VQjrxevh.txt: HTML document, UTF-8 Unicode text, with very long lines, with CRLF line terminators
yfDEfn4L.txt: C source, ASCII text, with CRLF line terminators
yydAEDRn.txt: HTML document, ASCII text, with very long lines, with CRLF line terminators
На данный момент я просто использовал команду grep с конвейером
file * | grep -v "C source" | grep -v "Python script" | grep -v "UTF-8" | grep -v "empty"
Но поиск с помощью grep действительно медленный с точки зрения нескольких файлов, поэтому мне было интересно, есть ли какие-либо эффективные способы сделать это в python. Я новичок в python, поэтому любая помощь с кодом будет действительно полезна. Заранее спасибо.
Обновление: я решил эту проблему с помощью python -magi c и os.walk для фильтрации на основе миметипов.