Zakaj avtomatiziramo svoje stvari
Avtomatizacija naših stvari nam lahko olajša življenje. Ima veliko prednosti, nekatere pomembne prednosti avtomatizacije pa so navedene spodaj
- Prva in najpomembnejša prednost avtomatizacije je prihranek časa.
- Lahko povečamo učinkovitost našega dela (tj.e. več dela v krajšem času)
- Natančnost načrtovanih nalog je mogoče izboljšati.
- Z avtomatizacijo stvari se zmanjša človeška interakcija s sistemom, zato se avtomatizirajo dolgočasne stvari.
Avtomatizacija s Pythonom
Obstaja nekaj skriptnih jezikov, kot so bash, perl itd. za avtomatizacijo ročnih procesov, vendar python zagotavlja izvedljivo okolje za obravnavo naših potreb. Lažje je avtomatizirati stvari s programskim jezikom Python kot v katerem koli drugem jeziku. Python ima veliko modulov za avtomatizacijo (tj.e. podproces, shutil, os, pyautogui, selen itd.), ki se lahko uporabljajo v avtomatizaciji. Videli bomo nekaj primerov, kako avtomatiziramo svoje stvari.
Moduli za avtomatizacijo v Pythonu
Tu bomo razpravljali o nekaterih avtomatizacijskih modulih v podobnem pythonu OS, PODPROCES, SHUTIL, DATETIME, SELENIUM itd. Ti moduli se uporabljajo za izvajanje sistemskih ukazov in jih je mogoče uporabiti tudi za upravljanje sistemskih imenikov. Ti moduli imajo vgrajene funkcije, ki olajšajo izvajanje nalog v sistemu.
OS in PODPROCES moduli se uporabljajo za skoraj enak namen. Nekatere vgrajene funkcije teh modulov so navedene spodaj
- chdir () \\ Spreminjanje imenika
- mkdir () \\ Ustvariti nov imenik
- rename () \\ Če želite preimenovati datoteko
- listdir () \\ Za seznam vseh datotek in imenikov
- getcwd () \\ Če želite poznati naš trenutni imenik
- system () \\ Za zagon sistemskih ukazov
- call () \\ Za zagon sistemskih ukazov
podobno SHUTIL modul ima veliko funkcij, ki omogočajo interakcijo s sistemom. Nekatere funkcije tega modula so navedene spodaj
- move () \\ Če želite premakniti datoteko
- copy () \\ Če želite kopirati datoteko
- rmtree () \\ Če želite odstraniti vse datoteke v imeniku in podimenikih
DATUM ČAS modul se uporablja za iskanje trenutnega datuma in ure. Uporablja se tudi za iskanje tedenskega dne in mnogih drugih stvari. S tem modulom lahko kadar koli in na datum razporedimo svojo nalogo. V naslednjih primerih uporabe ga bomo uporabili za iskanje samo trenutnega datuma in ure.
- Datum čas.danes () \\ Za iskanje trenutnega datuma in Čas
SELEN Modul se uporablja za avtomatizacijo prijave našega spletnega mesta. Na naše spletno mesto se lahko samodejno prijavimo in ga posodobimo z uporabo SELEN modul. SELEN ima veliko vgrajenih funkcij, ki se uporabljajo za izvajanje različnih nalog, povezanih z brskalniki.
Kako izvršiti sistemske ukaze v Pythonu
Sistemske ukaze lahko zaženemo v pythonu z uporabo OS in PODPROCES moduli. Sledi sintaksa za zagon sistemskega ukaza v pythonu
os.sistem ('ukaz')ALI
podproces.klic ('ukaz')Če želimo na primer našteti vse datoteke in imenike v trenutnem imeniku, bomo v skriptu python zagnali naslednji ukaz
os.sistem ('ls')ALI
podproces.klic ('ls')Kako avtomatizirati stvari s Pythonom
Python se lahko uporablja za avtomatizacijo številnih dnevnih opravil, ki lahko prihranijo čas. Tu bomo videli nekaj primerov uporabe avtomatizacije naših stvari. Pogovorili se bomo o urejanju datotek v imeniku za nalaganje in hrambi varnostnih kopij naših pomembnih datotek.
Urejanje datotek v imeniku za prenos
Ko prenesemo katero koli vrsto datoteke, gre privzeto v mapo Prenos. Ko moramo najti katero koli datoteko, lahko to povzroči težave, saj je v imeniku za prenos veliko vrst datotek. Zdaj bomo napisali skript python za avtomatizacijo sistema tako, da bodo različne vrste datotek (npr.g. mp3, png, xls itd.) je v različnih imenikih. Popolna koda je navedena spodaj. Ta koda bo preverjala vsako vrsto datoteke eno za drugo, nato pa bo ustvarila ustrezen imenik. Po tem bo datoteko premaknil v povezane imenike (npr.g ... datoteka mp3 bo šla v imenik 'Audio').
uvoz osuvoz shutil
uvozi datum in čas
medtem ko 1:
# izračun trenutne ure, minute in sekunde
danes = datum in čas.Datum čas.danes ()
danes = str (danes)
current_hour = danes [11:13]
current_minute = danes [14:16]
current_sec = danes [17:19]
# poskrbite, da bo sistem urejal datoteke ob 08:00
če je current_hour == '08' in current_minute == '00' in current_sec == '00':
# spreminjanje imenika za prenos
os.chdir ("path_to_Download_directory")
# shranjevanje vseh imen datotek na seznam
datoteke = os.listdir (os.getcwd ())
za ime datoteke v datotekah:
# ignoriranje imenikov
če ne os.pot.isdir (ime datoteke):
# izbiranje datotek mp3
če '.mp3 'v imenu datoteke:
# ustvarjanje imenika 'Audio', če ne obstaja
če ne os.pot.obstaja ('Zvok'):
os.mkdir ('Zvok')
# premikanje datoteke v imeniku 'Audio'
shutil.premakni (ime datoteke, 'Zvok')
# izbiranje datotek mp4
elif '.mp4 'v imenu datoteke:
# ustvarjanje imenika 'Video', če ne obstaja
če ne os.pot.obstaja ('Video'):
os.mkdir ('Video')
# premikanje datoteke v imeniku 'Video'
shutil.premakni (ime datoteke, 'Video')
# izbira datotek pdf
elif '.pdf 'v imenu datoteke:
# ustvarjanje imenika 'PDF', če ne obstaja
če ne os.pot.obstaja ('PDF'):
os.mkdir ('PDF')
# premikanje datoteke v imeniku PDF
shutil.premakni (ime datoteke, 'PDF')
# izbiranje datotek jpg in png
elif '.jpg 'v imenu datoteke ali'.png 'v imenu datoteke:
# ustvarjanje imenika 'Slike', če ne obstaja
če ne os.pot.obstaja ('Slike'):
os.mkdir ('Slike')
# premikanje datoteke v imeniku 'Slike'
shutil.premakni (ime datoteke, 'Slike')
# izbira Excelovih datotek
elif '.xls 'v imenu datoteke:
# ustvarjanje mape 'Excel', če ne obstaja
če ne os.pot.obstaja ('Excel'):
os.mkdir ('Excel')
# premikanje datoteke v imeniku 'Excel'
shutil.premakni (ime datoteke, 'Excel')
# izbira '.ppt 'datotek
elif '.ppt 'v imenu datoteke:
# ustvarjanje imenika 'Power Point', če ne obstaja
če ne os.pot.obstaja ('Power Point'):
os.mkdir ('Power Point')
# premikanje datoteke v imeniku 'Power Point'
shutil.premakni (ime datoteke, 'Power Point')
# izbira '.datotek
elif '.docx 'v imenu datoteke:
# ustvarjanje imenika 'Word File', če ne obstaja
če ne os.pot.obstaja ('Wordova datoteka'):
os.mkdir ('Wordova datoteka')
# premikanje datoteke v imeniku 'Word File'
shutil.premakni (ime datoteke, 'Wordova datoteka')
Najprej bomo prihranili trenutni čas v različnih spremenljivkah, nato pa preverimo, ali je čas natančen '08: 00 'ali ne. Program bo vsak dan preveril uro in zagnal kodo, če je čas '08: 00 ', nato se bo zagnala glavna koda. V glavni kodi najprej spremenimo svoj imenik v Prenos. Tu bomo vsa imena datotek shranili na seznam z imenom datotek. Zdaj bomo prebrali vse datoteke eno za drugo in filtrirali samo datoteke. Imenikov bomo prezrli, saj bomo uredili samo datoteke.
Zdaj bomo preverili vsako vrsto datoteke, ali je mp3, mp4, jpg, pdf, xls, ppt in docx ali ne. Po preverjanju vsake vrste datoteke bomo preverili, ali obstaja ustrezen imenik ali ne. Na primer, če je datoteka mp3, bomo preverili, ali imenik 'Audio' obstaja ali ne. Če ustrezen imenik ne obstaja, ga bomo ustvarili. Po ustvarjanju imenika bomo datoteko premaknili v ta imenik. Na ta način lahko vse datoteke premaknete v ustrezne imenike.
Ta koda bo delovala neprekinjeno in še naprej preverjala, ali je čas '08: 00 'ali ne. Vsak dan ob '08: 00 'bodo datoteke urejene samodejno. To kodo je mogoče načrtovati za zagon vsakič, ko zaženete sistem s pomočjo crontab. Crontab je pojasnjen spodaj.
Samodejno varnostno kopirajte datoteke s sistemskimi ukazi
V imeniku imate nekaj pomembnih datotek, povezanih z vašim projektom, in nekatere datoteke so nekako izbrisane. Potem, kaj boste storili? V tej situaciji je pomembno, da ustvarite varnostno kopijo datotek. Toda ustvarjanje varnostne kopije datotek je res dolgočasno in zahteva veliko časa. To nalogo lahko izvedete samodejno s pisanjem skripta python. Sledi koda za izvajanje te naloge. Ta koda bo pretvorila vsako datoteko v zip datoteko, nato pa bo ustvarila rezervni imenik, če ne obstaja. Po tem se bo datoteka zip premaknila v imenik varnostnih kopij.
uvoz osuvozi datum in čas
medtem ko 1:
# prihranek trenutnega časa
danes = datum in čas.Datum čas.danes ()
danes = str (danes)
current_hour = danes [11:13]
current_minute = danes [14:16]
current_sec = danes [17:19]
# poskrbite, da bo koda delovala natančno '08: 00 '
če je current_hour == '08' in current_minute == '00' in current_sec == '00':
# spreminjanje imenika v dokumente
os.chdir ('imenik_pot_do_dokumenti')
# shranjevanje vseh imen datotek na seznam
datoteke = os.listdir (os.getcwd ())
# ustvarjanje direktorija 'backup', če ne obstaja
če ne os.pot.obstaja ('varnostna kopija'):
os.mkdir ('varnostna kopija')
za datoteko v datotekah:
# ignoriranje imenikov
če ne os.pot.isdir (datoteka):
# definiranje imena datoteke brez presledkov
original_name = datoteka
datoteka = datoteka.razdeli ("")
ime_datoteke = "".pridruži se (datoteka)
# definiranje zip_filename
zip_file_name = ime_datoteke + ".zadrga "
# preverjanje, ali datoteka že obstaja v imeniku varnostnih kopij ali ne
če ne os.pot.obstaja ('backup /' + zip_file_name):
# spreminjanje imena datoteke brez presledkov
os.preimenovanje (original_name, ime_datoteke)
# ustvarjanje zip datoteke s sistemskim ukazom
os.sistem ("zip" + zip_ime_datoteke + "" + ime_datoteke)
#moving zip datoteko v varnostni kopiji z uporabo sistemskega ukaza
os.sistem ("mv" + zip_file_name + "backup")
# spreminjanje imena datoteke v prvotno ime
os.preimenovanje (ime_datoteke, izvirno_ime)
Najprej bomo prihranili trenutni čas v spremenljivkah in nato preverili, ali je čas '08: 00 'ali ne. Če je čas natančen '08: 00 ', se bo zagnal glavni skript. V glavni kodi gremo najprej v imenik, v katerem so pomembne datoteke. Nato vsa imena datotek shranimo na seznam. Zdaj bomo ustvarili imenik 'backup', v katerem bomo shranili vse zip datoteke. Če ta imenik že obstaja, ga bomo prezrli. Zdaj bomo prebrali vsako datoteko in preverili, ali gre za datoteke ali ne. Imeniki bodo prezrti in datoteke bodo upoštevane.
Da bi z uporabo sistemskega ukaza ustvarili datoteko zip datoteke, jo bomo najprej preimenovali brez presledkov, saj se ime datoteke s presledki v vsakem presledku šteje za drugačno datoteko, ko jo zaženemo v sistemski ukaz s pomočjo skripta python. Ime datoteke se shrani v spremenljivko 'original_filename' in datoteka se preimenuje brez presledkov. Zdaj bomo definirali ime datoteke zip enako kot ime datoteke s pripono '.zadrga.
Po tem bomo uporabili sistemski ukaz 'zip' za stiskanje te datoteke, nato pa bomo to datoteko zip premaknili v imenik 'backup' z uporabo sistemskega ukaza 'mv'. Nato bomo datoteko znova preimenovali z izvirnim imenom s presledki. Ta koda bo načrtovana, da se sistem samodejno zažene vsakič, ko zaženete sistem s pomočjo crontab.
Samodejno zaženite skript s pomočjo Crontaba
Zgoraj smo napisali skripte za avtomatizacijo. Zdaj želimo te skripte zagnati samodejno vsakič, ko se naš sistem znova zažene. V ta namen dodamo skript v crontab. Če želite dodati nalogo v crontab, naredite naslednje
Najprej vnesite naslednji ukaz za urejanje datoteke crontab
ubuntu @ ubuntu: ~ $ crontab -e-Oznaka pomeni odprt crontab v načinu urejanja. Po odprtju datoteke crontab bomo svojo nalogo v to datoteko dodali z naslednjim ukazom na koncu datoteke
@reboot python / path / to / python / scriptTo bo samodejno zagnalo skript python vsakič, ko zaženete sistem.
Zaključek
V tem članku je pojasnjen pomen avtomatizacije v praktičnem življenju. Z branjem tega članka dobite idejo, kako lahko avtomatizirate svoja preprosta opravila, ki jih opravljate vsak dan. Vsekakor bi morali poiskati več knjižnic in funkcij python za boljšo in enostavnejšo avtomatizacijo.