Фильтрация файлов по миметам и содержимому в python - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь отфильтровать файлы в каталоге на основе 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 для фильтрации на основе миметипов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...