Посмотрите на пакет chardet python.Вы можете использовать тот же подход os.walk
, что и agf, и вызывать метод chardet.detect
и помечать файлы, которые не являются ASCII (или с более низким значением достоверности).
Хотя это оставляет место для ошибки,если вы хотите быть более уверенным, вы также можете отсканировать каждый файл на наличие символов, которые вряд ли появятся в файле python (не алфавит, пунктуация и т. д.).Однако это не обнаружит такие вещи, как символы UTF-16, которые имеют то же значение, что и два 7-разрядных символа ascii с добавлением нуля, т.е. U+16705
<-> AA
.
.символы, которые вы хотите исключить, относятся к ограниченному числу наборов символов, и вы должны быть в состоянии найти их с высокой достоверностью.