Zašto automatiziramo svoje stvari
Automatizacija naših stvari može nam olakšati život. Ima mnogo prednosti, ali neke važne prednosti automatizacije dane su u nastavku
- Prva i najvažnija prednost automatizacije je ušteda vremena.
- Možemo povećati učinkovitost svog rada (tj.e. više posla za manje vremena)
- Točnost planiranih zadataka može se poboljšati.
- Automatizacijom stvari smanjuje se interakcija čovjeka sa sustavom pa se automatiziraju dosadne stvari.
Automatizacija s Pythonom
Postoji nekoliko skriptnih jezika poput bash, perl itd. za automatizaciju ručnih procesa, ali python pruža izvedivo okruženje za rješavanje naših potreba. Jednostavnije je automatizirati stvari pomoću programskog jezika Python nego na bilo kojem drugom jeziku. Python ima mnogo automatizacijskih modula (tj.e. potproces, shutil, os, pyautogui, selen itd.) koji se mogu koristiti u automatizaciji. Vidjet ćemo neke slučajeve korištenja kako automatiziramo svoje stvari.
Moduli za automatizaciju u Pythonu
Ovdje ćemo razgovarati o nekim modulima automatizacije u python-u OS, PODPROCES, SHUTIL, DATETIME, SELENIUM itd. Ti se moduli koriste za izvršavanje sistemskih naredbi, a mogu se koristiti i za manipulaciju sistemskim direktorijima. Ovi moduli imaju ugrađene funkcije koje olakšavaju izvršavanje zadataka na sustavu.
OS i PODPROCES moduli se koriste u gotovo istu svrhu. Neke ugrađene funkcije ovih modula date su u nastavku
- chdir () \\ Za promjenu direktorija
- mkdir () \\ Za stvaranje novog direktorija
- preimenovati () \\ Da biste preimenovali datoteku
- listdir () \\ Za popis svih datoteka i direktorija
- getcwd () \\ Da bismo znali naš trenutni direktorij
- system () \\ Za pokretanje sistemskih naredbi
- call () \\ Za pokretanje sistemskih naredbi
Slično tome ŠUTIL modul ima mnogo funkcija što omogućuje interakciju sa sustavom. Neke funkcije ovog modula date su u nastavku
- move () \\ Za premještanje datoteke
- copy () \\ Za kopiranje datoteke
- rmtree () \\ Za uklanjanje svih datoteka u direktoriju i poddirektorijima
DATUM VRIJEME modul koristi se za pronalaženje trenutnog datuma i vremena. Također se koristi za pronalaženje dana u tjednu i mnogih drugih stvari. Pomoću ovog modula možemo planirati svoj zadatak u bilo koje vrijeme i na datum. U sljedećim slučajevima korištenja koristit ćemo ga za pronalaženje samo trenutnog datuma i vremena.
- Datum vrijeme.danas () \\ Da biste pronašli trenutni datum i Vrijeme
SELEN Modul se koristi za automatizaciju procesa prijave našeg web mjesta. Možemo se automatski prijaviti na našu web stranicu i ažurirati je pomoću SELEN modul. SELEN ima mnogo ugrađenih funkcija koje se koriste za izvršavanje različitih zadataka povezanih s preglednicima.
Kako izvršavati sistemske naredbe u Pythonu
Možemo pokretati sistemske naredbe u pythonu koristeći OS i PODPROCES modula. Slijedi sintaksa za pokretanje sistemske naredbe u pythonu
os.sustav ('naredba')ILI
potproces.poziv ('naredba')Na primjer, ako želimo navesti sve datoteke i direktorije u trenutnom direktoriju, pokrenut ćemo sljedeću naredbu u python skripti
os.sustav ('ls')ILI
potproces.poziv ('ls')Kako automatizirati stvari s Pythonom
Python se može koristiti za automatizaciju mnogih vrsta dnevnih zadataka što može uštedjeti vrijeme. Ovdje ćemo vidjeti neke slučajeve korištenja automatizacije naših stvari. Razgovarat ćemo o rasporedu datoteka u direktoriju za preuzimanje i čuvanju sigurnosne kopije naših važnih datoteka.
Raspoređivanje datoteka u direktoriju za preuzimanje
Kada preuzmemo bilo koju vrstu datoteke, ona prema zadanim postavkama ide u direktorij za preuzimanje. Kad moramo pronaći bilo koju datoteku, to bi moglo stvoriti problem jer se u direktoriju za preuzimanje nalazi mnogo vrsta datoteka. Sada ćemo napisati python skriptu za automatizaciju sustava na takav način da različite vrste datoteka (npr.g. mp3, png, xls itd.) ide u različite direktorije. Kompletni kod dan je u nastavku. Ovaj će kod provjeriti svaku vrstu datoteke jednu po jednu, a zatim će stvoriti odgovarajući direktorij. Nakon toga premjestit će datoteku u povezane direktorije (npr.g ... mp3 datoteka ići će u direktorij 'Audio').
uvoz osuvoz shutil
uvoz datum i vrijeme
dok 1:
#račun trenutnog sata, minute i sekunde
danas = datum i vrijeme.Datum vrijeme.danas()
danas = str (danas)
current_hour = danas [11:13]
current_minute = danas [14:16]
current_sec = danas [17:19]
# osiguravajući da će sustav organizirati datoteke u 08:00
ako je current_hour == '08' i current_minute == '00' i current_sec == '00':
# promjena direktorija za preuzimanje
os.chdir ("path_to_Download_directory")
# spremanje svih imena datoteka na popis
datoteke = os.listdir (os.getcwd ())
za naziv datoteke u datotekama:
# zanemarivanje direktorija
ako ne os.staza.isdir (naziv datoteke):
# odabir mp3 datoteka
ako '.mp3 'u nazivu datoteke:
# stvaranje direktorija 'Audio' ako ne postoji
ako ne os.staza.postoji ('Audio'):
os.mkdir ('Audio')
# premještanje datoteke u direktoriju 'Audio'
šutil.premjesti (naziv datoteke, 'Audio')
# odabir mp4 datoteka
elif '.mp4 'u nazivu datoteke:
# stvaranje direktorija 'Video' ako ne postoji
ako ne os.staza.postoji ('Video'):
os.mkdir ('Video')
# pokretna datoteka u direktoriju 'Video'
šutil.premjesti (naziv datoteke, 'Video')
# odabir pdf datoteka
elif '.pdf 'u nazivu datoteke:
# stvaranje 'PDF' direktorija ako ne postoji
ako ne os.staza.postoji ('PDF'):
os.mkdir ('PDF')
# pokretna datoteka u PDF direktoriju
šutil.premjesti (naziv datoteke, 'PDF')
# odabir jpg i png datoteka
elif '.jpg 'u nazivu datoteke ili'.png 'u nazivu datoteke:
# stvaranje direktorija 'Slike' ako ne postoji
ako ne os.staza.postoji ('Slike'):
os.mkdir ('Slike')
# pokretna datoteka u direktoriju 'Slike'
šutil.premjesti (naziv datoteke, 'Slike')
# odabir excel datoteka
elif '.xls 'u nazivu datoteke:
# stvaranje 'Excel' direktorija ako ne postoji
ako ne os.staza.postoji ('Excel'):
os.mkdir ('Excel')
# premještanje datoteke u direktoriju 'Excel'
šutil.premjesti (naziv datoteke, 'Excel')
# odabir '.ppt 'datoteke
elif '.ppt 'u nazivu datoteke:
# stvaranje direktorija 'Power Point' ako ne postoji
ako ne os.staza.postoji ('Power Point'):
os.mkdir ('Power Point')
# pokretna datoteka u direktoriju 'Power Point'
šutil.premjesti (naziv datoteke, 'Power Point')
# odabir '.datoteke dokumenata
elif '.docx 'u nazivu datoteke:
# stvaranje direktorija 'Word datoteka' ako ne postoji
ako ne os.staza.postoji ('Word datoteka'):
os.mkdir ('Datoteka riječi')
# premještanje datoteke u direktoriju 'Word datoteka'
šutil.premjesti (naziv datoteke, 'Word datoteka')
Prije svega, spremit ćemo trenutno vrijeme u različite varijable, a zatim ćemo provjeriti je li vrijeme točno '08: 00 'ili ne. Program će svakodnevno provjeravati vrijeme i pokrenut će kôd ako je vrijeme '08: 00 ', tada će se pokrenuti glavni kôd. U glavnom kodu, prije svega mijenjamo svoj direktorij u direktorij za preuzimanje. Ovdje ćemo spremiti sva imena datoteka na popis datoteka s datotekama. Sada ćemo čitati sve datoteke jednu po jednu i filtrirati samo datoteke. Ignorirat ćemo direktorije jer ćemo slagati samo datoteke.
Sada ćemo provjeriti svaku vrstu datoteke je li mp3, mp4, jpg, pdf, xls, ppt i docx ili ne. Nakon provjere svake vrste datoteke provjerit ćemo postoji li odgovarajući direktorij ili ne. Na primjer, ako je datoteka mp3, provjerit ćemo da direktorij 'Audio' postoji ili ne. Ako odgovarajući direktorij ne postoji, stvorit ćemo ga. Nakon stvaranja direktorija premjestit ćemo našu datoteku u taj direktorij. Na taj se način sve datoteke mogu premjestiti u odgovarajuće direktorije.
Ovaj će se kod neprestano izvoditi i dalje provjeravati je li vrijeme '08: 00 'ili nije. Svakodnevno u '08: 00 'datoteke će se automatski slagati. Ovaj se kôd može zakazati za pokretanje svaki put kada pokrenete sustav pomoću crontab-a. Crontab je objašnjen u nastavku.
Automatski napravite sigurnosnu kopiju datoteka pomoću naredbi sustava
Imate neke važne datoteke u direktoriju povezane s vašim projektom i neke se datoteke nekako brišu. Onda što ćete učiniti? U ovoj je situaciji važno stvaranje sigurnosne kopije datoteka. Ali stvaranje sigurnosne kopije datoteka stvarno je dosadno i oduzima vam vrijeme. Ovaj se zadatak može automatski izvršiti pisanjem python skripte. Slijedi kôd za izvršavanje ovog zadatka. Ovaj će kôd pretvoriti svaku datoteku u zip datoteku, a zatim će stvoriti sigurnosnu kopiju direktorija ako ne postoji. Nakon toga, zip datoteka će se premjestiti u sigurnosni direktorij.
uvoz osuvoz datum i vrijeme
dok 1:
# ušteda trenutnog vremena
danas = datum i vrijeme.Datum vrijeme.danas()
danas = str (danas)
current_hour = danas [11:13]
current_minute = danas [14:16]
current_sec = danas [17:19]
# osiguravajući da kôd radi točno u '08: 00 '
ako je current_hour == '08' i current_minute == '00' i current_sec == '00':
# promjena direktorija u dokumente
os.chdir ('direktorij_puta_dokumenata')
# spremanje svih imena datoteka na popis
datoteke = os.listdir (os.getcwd ())
# stvaranje 'sigurnosne kopije' direktorija ako ne postoji
ako ne os.staza.postoji ('sigurnosna kopija'):
os.mkdir ('sigurnosna kopija')
za datoteku u datotekama:
# zanemarivanje direktorija
ako ne os.staza.isdir (datoteka):
# definiranje naziva datoteke bez razmaka
izvorno_ime = datoteka
datoteka = datoteka.podjela(" ")
file_name = "".pridružiti se (datoteka)
# definira zip_filename
zip_file_name = ime_datoteke + ".zip "
# provjera postoji li datoteka već u sigurnosnoj kopiji ili ne
ako ne os.staza.postoji ('backup /' + zip_file_name):
# promjena naziva datoteke bez razmaka
os.preimenovati (izvorno_ime, ime_datoteke)
# stvaranje zip datoteke pomoću sistemske naredbe
os.sustav ("zip" + zip_ime_datoteke + "" + ime_datoteke)
#moving zip datoteku u direktoriju sigurnosne kopije pomoću sistemske naredbe
os.sustav ("mv" + zip_file_name + "backup")
# promjena naziva datoteke u izvorno ime
os.preimenovati (ime_datoteke, izvorno_ime)
Prije svega spremit ćemo trenutno vrijeme u varijable, a zatim ćemo provjeriti je li vrijeme '08: 00 'ili nije. Ako je vrijeme točno '08: 00 ', tada će se pokrenuti glavna skripta. U glavnom kodu, prije svega, idemo u direktorij u kojem su važne datoteke. Tada spremimo sva imena datoteka na popis. Sada ćemo stvoriti direktorij 'sigurnosna kopija' u koji ćemo spremiti sve zip datoteke. Ako ovaj direktorij već postoji, mi ćemo ga zanemariti. Sada ćemo pročitati svaku datoteku i provjeriti jesu li to datoteke ili ne. Katalozi će se zanemariti, a datoteke će se uzeti u obzir.
Da bismo stvorili zip datoteku datoteke pomoću sistemske naredbe, prije svega, preimenovat ćemo ovu datoteku bez razmaka, jer se naziv datoteke s razmacima smatra različitom datotekom u svakom razmaku, kada se izvrši u sistemsku naredbu pomoću python skripte. Ime datoteke sprema se u varijablu 'original_filename' i datoteka se preimenuje bez razmaka. Sada ćemo definirati naziv zip datoteke isto kao i naziv datoteke s nastavkom '.zip.
Nakon toga upotrijebit ćemo sistemsku naredbu 'zip' za zip ovu datoteku, a zatim ćemo premjestiti ovu zip datoteku u 'backup' direktorij pomoću sistemske naredbe 'mv'. Tada ćemo datoteku ponovno preimenovati u izvorno ime s razmacima. Ovaj će se kôd zakazati da se sistem automatski pokreće svaki put kada sistem pokrenete pomoću crontab-a.
Automatizirajte pokretanje skripte pomoću Crontaba
Gore smo napisali skripte za automatizaciju. Sada želimo automatski pokrenuti ove skripte kad god se naš sustav ponovno pokrene. Da bismo to učinili, dodajemo našu skriptu u crontab. Da biste dodali zadatak u crontab, učinite sljedeće korake
Prije svega, upišite sljedeću naredbu za uređivanje datoteke crontab
ubuntu @ ubuntu: ~ $ crontab -e-Oznaka znači otvoreni crontab u načinu uređivanja. Nakon otvaranja crontab datoteke, sada ćemo dodati svoj zadatak u ovu datoteku pomoću sljedeće naredbe na kraju datoteke
@reboot python / path / to / python / scriptOvo će automatski pokrenuti python skriptu svaki put kad pokrenete sustav.
Zaključak
U ovom je članku objašnjena važnost automatizacije u praktičnom životu. Čitajući ovaj članak, dobivate ideju kako možete automatizirati svoje jednostavne zadatke koje radite svakodnevno. Svakako biste trebali potražiti više python biblioteka i funkcija za bolju i jednostavniju automatizaciju.