Python

Razporejanje nalog z uporabo Pythona

Razporejanje nalog z uporabo Pythona
Nekatere naloge v našem življenju si resnično vzamejo čas in pri teh nalogah se večkrat dolgočasimo. Da bi se izognili dolgočasnim nalogam, jih avtomatiziramo v našem sistemu. Python ima veliko avtomatizacijskih modulov, s katerimi lahko avtomatiziramo naše stvari. Spodaj bomo razpravljali o pomenu avtomatizacije in o tem, kako avtomatizirati svoje stvari s pomočjo pythona. Razpravljali bomo tudi o nekaterih avtomatizacijskih modulih v pythonu, ki pomagajo avtomatizirati naše stvari. Potem bomo videli nekaj primerov uporabe avtomatizacije z uporabo pythona. Na koncu bomo videli, kako lahko načrtujemo samodejni zagon skripta python ob zagonu.

Zakaj avtomatiziramo svoje stvari

Avtomatizacija naših stvari nam lahko olajša življenje. Ima veliko prednosti, nekatere pomembne prednosti avtomatizacije pa so navedene spodaj

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

podobno SHUTIL modul ima veliko funkcij, ki omogočajo interakcijo s sistemom. Nekatere funkcije tega modula so navedene spodaj

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.

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

To 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.

OpenTTD vs Simutrans
Ustvarjanje lastne simulacije prevoza je lahko zabavno, sproščujoče in izjemno vabljivo. Zato morate preizkusiti čim več iger, da boste našli tisto, k...
Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...
SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...