Цикл по расширениям файлов, поиск не-ASCII символов - Python - PullRequest
1 голос
/ 13 ноября 2011

Я написал небольшую программу на Python, которая просматривает каталог (и его подкаталоги) для файлов, содержащих символы не-ASCII.

Я хочу улучшить это. Я знаю, что некоторые файлы в этом «каталоге» могут быть файлами ZIP, DTA / OUT, OMX, SFD / SF3 и т. Д., Которые, как предполагается, имеют символы не ASCII. Поэтому я хочу знать, что они там есть и просматривают те, которые не должны содержать символы ASCII, потому что моя конечная цель - найти файлы, которые не должны содержать символы не-ASCII, которые их содержат, и удалить их (поврежденный диск с поврежденными секторами с ценностью TB важных данных).

Мое мышление заключается в том, чтобы дополнительно просмотреть файлы, которые находятся в части «кроме» блока try / exception в Python, который выглядит следующим образом:

try:
    content.encode('ascii')
    output.write(str(counter) + ", " + file + ", ASCII\n")
    print str(counter) + " ASCII file status logged successfully: " + file
    counter += 1 

except UnicodeDecodeError:
    output.write(str(counter) + ", " + file + ", non-ASCII\n")
    print str(counter) + " non-ASCII file status logged successfully: " + file
    counter += 1 

Когда я начал писать код, я понял, что цикл с вопросом, является ли файл '.zip' или '.sfd' pr '.omx', и т. Д. ... будет неуклюжей программой и будет длиться вечно.

Есть ли способ поиска группы файловых расширений, кроме одного за другим? Может быть, файл, содержащий эти расширения, чтобы проверить? Или что-то, о чем я не думал? Заранее извиняюсь, если это глупый вопрос, но в Python так много классных функций, что я уверен, что упускаю что-то, что может помочь.

Приветствие.

1 Ответ

0 голосов
/ 21 ноября 2011

Я полагаю, так как нет никаких ответов, я могу пойти дальше и ответить на это сам с частичным ответом. Я в основном выбрал другой подход и искал конкретный файл, который, как ожидается, будет обильным для этого общего ресурса, а затем сделаю то же самое для каждого файла. Это отчасти хакерски, но с этим покончено.

...