Оглавление:

Синхронизация папок с Python: 5 шагов
Синхронизация папок с Python: 5 шагов

Видео: Синхронизация папок с Python: 5 шагов

Видео: Синхронизация папок с Python: 5 шагов
Видео: 43 Рекурсивный обход файлов Python 2024, Июль
Anonim
Синхронизация папок с Python
Синхронизация папок с Python
Синхронизация папок с Python
Синхронизация папок с Python

Это руководство покажет вам, как синхронизировать две папки (и все папки в них), чтобы одна была прямой копией другой. Идеально подходит для резервного копирования работы как локально, так и на облачный / сетевой сервер или на USB-накопитель. Для выполнения этого руководства не требуется никакого опыта программирования. Обратите внимание, что это работает только с Windows, хотя процесс похож на Mac и Linux.

У меня есть старый компьютер с Windows, который я настроил в качестве сервера для различных функций, одна из которых - дешевое сетевое хранилище, которое действует как медиа-сервер и как резервное копирование для всех компьютерных данных моей семьи.

Поскольку все члены моей семьи любят работать локально на своих компьютерах, нам требовался простой способ регулярного резервного копирования наших данных. Мне также нужен был способ удвоить объем резервного копирования, реализовав подход, подобный RAID, на двух жестких дисках на серверном ПК. Я тоже не хотел платить ни за какое программное обеспечение (да я знаю скупердяй). Вследствие этого все бесплатное программное обеспечение имеет тенденцию показывать всплывающие окна или даже замедлять работу ПК из-за длительного времени синхронизации и большой загрузки ЦП, что просто раздражало.

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

Шаг 1. Установка Python и зависимостей

Чтобы создать распространяемую программу, вам необходимо установить python на свой компьютер. Для этого перейдите по ссылке https://www.python.org/downloads/ и прокрутите вниз, пока не найдете нужную версию. Примечание. К сожалению, на момент написания модуля pyinstaller, который мы будем использовать, еще не работает с python 3.8, поэтому вам нужно будет использовать совместимую версию python (3.5-3.7).

Завершите установку, убедившись, что установлен флажок «Добавить в ПУТЬ».

После установки откройте командную строку и установите необходимые нам модули python, для этого введите следующее и выполните любые запросы по мере необходимости:

pip install pyinstaller

pip install dirsync

Шаг 2: сценарий Python

Скрипт красивый и простой, всего две строки, скопируйте и вставьте следующее в IDLE (установленный с Python) или в блокнот и сохраните как «DirectorySync.py»:

из синхронизации импорта dirsync

sync ('C: / FOLDER_A', 'E: / FOLDER_B', 'sync', purge = True)

Обязательно замените две указанные выше папки двумя папками, которые вы хотите синхронизировать. Двойная обратная косая черта обязательна в имени пути, поскольку обратная косая черта в Python является escape-символом.

Первая строка импортирует модуль dirsync, который мы установили ранее.

Второй выполняет синхронизацию. Первая папка - это исходная папка, а вторая - цель, «синхронизация» сообщает функции синхронизации, какой режим синхронизации следует реализовать. Добавление purge = True указывает функции удалить что-либо в целевой папке, чего больше нет в исходной папке. Есть и другие варианты, которые могут быть реализованы в зависимости от ваших потребностей.

То, как он настроен выше, также синхронизирует все папки в папке верхнего уровня, при необходимости это можно остановить. Если вы хотите синхронизировать более одной папки верхнего уровня, просто добавьте больше строк в свой код с помощью функции sync (). Дополнительные параметры и справку см. По следующей ссылке:

pypi.python.org/pypi/dirsync/2.2.2

Шаг 3: Создание.exe

Чтобы создать исполняемый файл, нам теперь нужно вернуться в командную строку.

Введите следующее, заменив путь к папке маршрутом к скрипту DirectorySync.py, который мы создали на последнем шаге:

pyinstaller -F -w C: /Route_to_your_folder/DirectorySync.py

В месте расположения папки вашего скрипта python создается ряд папок: _pycache_, build, dist и два других файла. В папке dist теперь находится файл с именем DirectorySync.exe, запуск которого выполнит синхронизацию в фоновом режиме. Этот файл можно распространить как есть для всех, и они могут затем запустить синхронизацию без необходимости установки python на компьютер.

Чтобы объяснить, что происходит в ЖЕЛОМ тексте, который был введен в командной строке:

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

'-F' - это параметр, который указывает pyinstaller создавать только один исполняемый файл, а не серию папок, которые также должны быть распределены.

'-w' - это параметр, который указывает компьютеру не отображать командную строку при каждом запуске сценария.

Путь - это путь к скрипту Python.

Дополнительные параметры и справку см. По ссылке ниже:

pyinstaller.readthedocs.io/en/stable/usage…

Шаг 4. Автоматический запуск

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

Для этого мы будем использовать программу Task Scheduler, которая поставляется с Windows, этот процесс основан на Windows 10, но практически идентичен на других платформах Windows.

  1. Откройте планировщик заданий из меню «Пуск».
  2. С правой стороны выберите в меню «Создать задачу».
  3. Дайте ему имя и описание, а внизу убедитесь, что он настроен для правильной операционной системы.
  4. На вкладке «Триггеры» создайте новый триггер, нажав «Создать» в левом нижнем углу, в новом всплывающем окне выберите нужную конфигурацию, я решил начать задачу при входе в систему и повторять каждый час, поэтому я знаю, что иметь резервную копию моей работы каждый час. Щелкните ОК.
  5. На вкладке «Действия» таким же образом создайте новое действие. Действие, которое нам нужно, - это запустить программу по умолчанию. Перейдите к исполняемому файлу, который мы создали ранее, и выберите. ПРИМЕЧАНИЕ: - если вы переместите исполняемый файл после создания задачи, задача и, следовательно, синхронизация не будут завершены.
  6. На вкладке «Условия» снимите флажок с настроек питания, чтобы он работал как от батареи, так и при подключении к сети.
  7. Нажмите ОК, и теперь вы создали свою задачу.

Перезагрузите компьютер и через некоторое время проверьте расположение целевой папки и убедитесь, что синхронизация сработала. Обратите внимание, если у вас большая папка, синхронизация может занять некоторое время, чтобы скопировать все папки в первый раз.

На этом руководство готово, я надеюсь, вы найдете его полезным. Если у вас возникнут вопросы, дайте мне знать.

Шаг 5: ОБНОВЛЕНИЕ 15 ЯНВАРЯ 2020 - Скачать программу

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

Рекомендуемые: