Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе. |
Автоматизация типичных задач на вашем компьютере
Мы получили список файлов, являющихся кандидатами на удаление, причем для каждого файла указана причина, по которой его следует удалить. Вот вывод программы:
python txtcheck3.py ... T-Mobile: ./2006/05/31-05-06_1540001.txt T-Mobile: ./2006/05/31-05-06_1648001.txt iPhone: ./2007/09/15-09-07_074202_03.txt iPhone: ./2007/09/15-09-07_144641_01.txt iPhone: ./2007/09/19-09-07_124857_01.txt ...
Можно еще раз выборочно проверить эти файлы, чтобы убедиться, что мы не сделали ошибки в нашей программе и она не найдет файлы, которые не хотелось бы удалять. Если мы удовлетворены этой проверкой, внесем следующие изменения в программу:
if size == 2578 or size == 2565: print 'T-Mobile:',thefile os.remove(thefile) continue ... if len(lines) == 3 and lines[2].startswith('Sent from my iPhone') : print 'iPhone:', thefile os.remove(thefile) continue
В этом варианте программы мы печатаем названия плохих файлов и затем удаляем их, используя метод os.remove.
python txtdelete.py T-Mobile: ./2005/01/02-01-05_1356001.txt T-Mobile: ./2005/01/02-01-05_1858001.txt ...
Ради интереса запустите программу во второй раз – она не выдаст ничего, поскольку все плохие файлы уже уничтожены. Если запустить рассмотренную ранее программу txtcount.py, подсчитывающую текстовые файлы, мы увидим, что было удалено 899 плохих файлов:
python txtcount.py Files: 1018
В этом разделе мы выполняли следующие шаги: сначала использовали Питон для просмотра всех директорий и файлов в них, пытаясь найти шаблоны нежелательных файлов. Затем, находя очередной шаблон, мы улучшали результаты поиска, что в конце концов помогло точно определить, какие именно файлы мы хотим удалить. Наконец, на последнем шаге мы с помощью Питона удалили все ненужные файлы.
Задача определения требуемого множества файлов может быть совсем простой и зависеть, например, только от имен файлов, – но, возможно, нам придется считывать содержимое каждого файла и искать какие-либо текстовые фрагменты внутри него. Иногда приходится читать все файлы и вносить изменения в некоторые из них. В любом случае всякая подобная задача легко решается, когда мы понимаем, как работает метод os.walk и другие методы из библиотеки os.