Piton

Raspoređivanje zadataka pomoću Pythona

Raspoređivanje zadataka pomoću Pythona
Neki zadaci u našem životu stvarno nam oduzimaju vrijeme i ponavljamo ih dosadno radeći ih. Da bismo izbjegli one dosadne zadatke, automatiziramo ih u našem sustavu. Python ima mnogo automatizacijskih modula koji se mogu koristiti za automatizaciju naših stvari. U nastavku ćemo razmotriti važnost automatizacije i kako automatizirati naše stvari pomoću pythona. Također ćemo raspraviti neke automatizacijske module u pythonu koji pomažu u automatizaciji naših stvari. Tada ćemo vidjeti neke slučajeve korištenja automatizacije pomoću pythona. Na kraju ćemo vidjeti kako možemo zakazati da se naša python skripta automatski pokreće prilikom pokretanja.

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

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

Slično tome ŠUTIL modul ima mnogo funkcija što omogućuje interakciju sa sustavom. Neke funkcije ovog modula date su u nastavku

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.

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 os
uvoz 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 os
uvoz 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 / script

Ovo ć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.

Top 5 karata za hvatanje igara
Svi smo vidjeli i voljeli streaming reprodukcije na YouTubeu. PewDiePie, Jakesepticye i Markiplier samo su neki od najboljih igrača koji su zaradili m...
Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...