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

Здесь нам поможет автоматизация

Вот как:

  • Python приходит на помощь благодаря своей невероятной универсальности и простоте использования!
  • Давайте составим список расширений файлов, о которых мы уже знаем, и указанную папку, в которой они должны оказаться.
  • Давайте создадим сторожевой таймер, ожидающий любых изменений в целевой папке.
  • Мы будем использовать pyinstaller для создания исполняемого файла для запуска скрипта на машинах без среды Python.

Построен с

В этом разделе должны быть перечислены все модули Python, которые используются в этом проекте.

Начиная

Начнем с импорта основных библиотек для сортировки файлов.

import os
from shutil import move

Библиотека os содержит все функции, которые возвращают функции, зависящие от системы.

Из shutil (утилиты оболочки) позволяет импортировать функцию, которая помогает перемещать каталоги и файлы по файловой системе.

Давайте получим имя пользователя, чтобы определить корневой каталог с папкой пользователя в пути
Просто убедитесь, что ваше имя пользователя Windows совпадает с вашей пользовательской папкой.

user  = os.getlogin()           
root_dir = '/Users/{}/Downloads/'.format(user)

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

Существует множество расширений файлов. Я выбрал несколько из них и классифицировал их соответствующим образом. Не стесняйтесь добавлять любые к вашим требованиям.

Функция get_non_hidden_filesвозвращает все нескрытые файлы. Он не вернет файлы, если их имена начинаются с «.» которые идентифицируются как скрытые

Функцияmove_filesпринимает файлы, возвращенные вышеописанной функцией, и передает их в соответствующие каталоги.

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

if __name__ == "__main__":    
files = get_non_hidden_files(root_dir)     
move_files(files)

Следующая часть…

Мы закончили с частью проекта по сортировке папок, теперь давайте сосредоточимся на автоматизации.

Во-первых, чтобы импортировать методы get_non_hidden_files() и move_files()из нашей программы сортировки, давайте создадим файл с именем __init__.py, который объединяет содержимое папки в виде пакета Python.

Давайте теперь свяжем все и напишем код для наблюдения за изменениями папки, назовем его main.py.

Мы начинаем с вызова класса Observer() с FolderHandler() в качестве нашего обработчика событий, а путем отслеживания изменений будет папка загрузок . Observer.schedule method планирует просмотр пути и вызывает соответствующие методы, указанные в данном обработчике событий, в ответ на события файловой системы.

Создать исполняемый файл (.exe)

Преобразование скриптов Python в исполняемые файлы имеет большие преимущества. Вы можете запустить это на любой машине с Windows без установленного Python. Вы можете легко создать несколько экземпляров и запускать их одновременно для многих папок. (PS: для одновременной обработки нескольких папок жестко заданные «пути» должны быть заменены функцией ввода папки, которая принимает путь во время выполнения)

pip install pyinstaller

чтобы сгенерировать .exe, выполните следующие действия в командной строке.

pyinstaller main.py -w --onefile

Добавление -w гарантирует, что командная строка не будет открываться при каждом запуске приложения. Это не должно быть включено, если вашему приложению требуется командная строка во время его работы. Кроме того, путем добавления --onefile создается один исполняемый файл пакета.

БОНУС

Если вы хотите подняться на новый уровень, создав установочный пакет, вот как это сделать.

Вы можете загрузить NSIS (Null Soft Installation System) и передать путь к исполняемому файлу во время запуска программного обеспечения. Теперь у вас есть программное обеспечение в комплекте с установочным пакетом Windows.

Вот ссылка на репозиторий github!