Съдържание:

Синхронизиране на папки с Python: 5 стъпки
Синхронизиране на папки с Python: 5 стъпки

Видео: Синхронизиране на папки с Python: 5 стъпки

Видео: Синхронизиране на папки с Python: 5 стъпки
Видео: Linux для начинающих / Урок #5 – Работа с файлами и директориями 2024, Ноември
Anonim
Синхронизиране на папки с Python
Синхронизиране на папки с Python
Синхронизиране на папки с Python
Синхронизиране на папки с Python

Тази инструкция ще ви покаже как да поддържате две папки (и всички папки в тях) в синхрон, така че едната да е директно копие на другата. Идеален за архивиране на работа както локално, към облачен/мрежов сървър или USB устройство. Не е необходим опит с програмирането, за да завършите този урок. Моля, обърнете внимание, че това работи само с Windows, въпреки че процесът е подобен на Mac и Linux.

Имам стар компютър с Windows, който имам настройка, действащ като сървър за различни функции, една от които е евтино мрежово хранилище, което действа като медиен сървър и резервно копие на всички компютърни данни на семейството ми.

Тъй като цялото ми семейство обича да работи локално на своите компютри, имахме нужда от лесен начин за архивиране на данните ни редовно. Имах нужда и от начин да удвоя резервното копие чрез прилагане на RAID подход на два твърди диска на сървърния компютър. Също така не исках да плащам за никакъв софтуер (да, знам, че съм скъперник). В резултат на това целият безплатен софтуер има тенденция да идва с изскачащи прозорци или дори да забавя компютъра с дълги времена на синхронизация и голямо използване на процесора, което беше просто досадно.

Затова с малко усилие написах скрипт на python, който да синхронизира папките, от които всички се нуждаем. След това бих могъл да персонализирам и разпространявам това на семейството като изпълним файл, който бих могъл да настроя Windows да се изпълнява редовно във фонов режим. Потребителят на компютъра не трябваше да бъде по -мъдър.

Стъпка 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 import sync

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

Не забравяйте да промените двете папки по -горе с двете папки, които искате да синхронизирате. Двойната обратна наклонена черта се изисква в името на пътя, тъй като обратната черта е изходен знак в Python.

Първият ред импортира модула 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 на компютъра.

За да обясните какво се случва в BOLD текста, въведен в командния ред:

'pyinstaller' казва на компютъра да използва модула pyinstaller, който сме изтеглили по -рано

'-F' е опция, която казва на pyinstaller да генерира само един изпълним файл, а не поредица от папки, които също трябва да бъдат разпространени.

'-w' е опция, която казва на компютъра да не показва командния ред всеки път, когато изпълнява скрипта.

Пътят е пътят към скрипта на python.

За повече опции и помощ вижте връзката по -долу:

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

Стъпка 4: Автоматично стартиране

Вече сте готови да синхронизирате всички папки, без да се налага да копирате, поставяте и изтривате многократно, като кликнете два пъти върху изпълнимия файл. Но ние искаме да отидем още по -далеч от това и да накараме Windows да стартира процеса автоматично, така че не е нужно да се притеснявате.

За да направим това, ще използваме програмата Task Scheduler, която се доставя с Windows, този процес се основава на Windows 10, но е почти идентичен на други платформи на Windows.

  1. Отворете Планировчика на задачите от менюто "Старт".
  2. От дясната страна изберете „Създаване на задача“от менюто.
  3. Дайте му име и описание и в долната част се уверете, че е конфигуриран за правилната операционна система.
  4. В раздела „Тригери“създайте нов тригер, като кликнете върху „Ново“в долния ляв ъгъл, в новия изскачащ прозорец изберете желаната от вас конфигурация, избрах да започна задачата при Влизане и да повтарям всеки час, за да знам, че имам резервно копие на работата ми на всеки час. Щракнете върху OK.
  5. В раздела „Действия“създайте ново действие по същия начин. Действието, от което се нуждаем, е да стартираме програма, която е по подразбиране. Прегледайте изпълнимия файл, който създадохме по -рано, и изберете. ЗАБЕЛЕЖКА:- ако преместите изпълнимия файл след създаването на задачата, задачата и следователно синхронизирането няма да завърши.
  6. В раздела „Условия“премахнете отметката от настройките за захранване, така че да работи както от батерията, така и от щепсела.
  7. Щракнете върху OK и вече сте създали задачата си.

Рестартирайте компютъра и след известно време проверете местоположението на целевата папка и вижте дали синхронизирането е работило, имайте предвид, че ако имате голяма папка, синхронизирането може да отнеме известно време, за да копирате всички папки през първия път.

Това е урокът завършен, надявам се да ви е полезен, ако имате въпроси, уведомете ме.

Стъпка 5: АКТУАЛИЗИРАНЕ НА 15 ЯНВРИ 2020 г. - Изтеглете програма

Все още използвам тази програма, която ми послужи добре. Въпреки това често съм бил помолен от хора да направят еднократно синхронизиране на задания за различни папки ръчно и т.н. Затова реших да актуализирам този Instructable с връзка към програма, която създадох, за да свърша работата. Той осигурява потребителски интерфейс, така че хората да могат лесно да извършват една от задачите за синхронизиране. Програмата може да бъде изтеглена от Github.

Препоръчано: