Python

Uzdevumu plānošana, izmantojot Python

Uzdevumu plānošana, izmantojot Python
Daži mūsu dzīves uzdevumi patiešām prasa laiku, un mums ir garlaicīgi atkārtoti veikt šos uzdevumus. Lai izvairītos no šiem garlaicīgajiem uzdevumiem, mēs tos automatizējam savā sistēmā. Python ir daudz automatizācijas moduļu, kurus var izmantot mūsu lietu automatizēšanai. Zemāk mēs apspriedīsim automatizācijas nozīmi un to, kā automatizēt savus materiālus, izmantojot pitonu. Mēs arī apspriedīsim dažus automatizācijas moduļus pitonā, kas palīdz automatizēt mūsu lietas. Tad mēs redzēsim dažus automatizācijas izmantošanas gadījumus, izmantojot pitonu. Beigās mēs redzēsim, kā mēs varam ieplānot, lai mūsu python skripts darbotos automātiski startēšanas laikā.

Kāpēc mēs automatizējam savas lietas

Mūsu lietu automatizācija var atvieglot mūsu dzīvi. Tam ir daudz priekšrocību, taču dažas svarīgas automatizācijas priekšrocības ir norādītas zemāk

Automatizācija ar Python

Ir dažas skriptu valodas, piemēram, bash, perl utt. lai automatizētu manuālos procesus, bet pitons nodrošina piemērotu vidi mūsu vajadzību apmierināšanai. Lietotnes Python programmēšanas valodā ir vieglāk automatizēt lietas nekā jebkurā citā valodā. Python ir daudz automatizācijas moduļu (t.i.e. apakšprocess, shutil, os, pyautogui, selēns utt.), ko var izmantot automatizācijā. Mēs redzēsim dažus lietošanas gadījumus, kā mēs automatizējam savus materiālus.

Automatizācijas moduļi Python

Šeit mēs apspriedīsim dažus automatizācijas moduļus, piemēram, Python OS, SUBPROCESS, SHUTIL, DATETIME, SELENIUM utt. Šie moduļi tiek izmantoti sistēmas komandu izpildei, un tos var izmantot arī, lai manipulētu ar sistēmas direktorijiem. Šajos moduļos ir iebūvētas funkcijas, kas atvieglo uzdevumu izpildi sistēmā.

OS un APAKŠPROCESS moduļi tiek izmantoti gandrīz tam pašam mērķim. Dažas no šo moduļu iebūvētajām funkcijām ir norādītas zemāk

Līdzīgi ŠUTILS modulim ir daudz funkciju, kas ļauj mijiedarboties ar sistēmu. Dažas šī moduļa funkcijas ir norādītas zemāk

DATUMS LAIKS modulis tiek izmantots, lai atrastu pašreizējo datumu un laiku. To izmanto arī, lai atrastu nedēļas dienu un daudzas citas lietas. Izmantojot šo moduli, mēs varam plānot savu uzdevumu jebkurā laikā un datumā. Turpmākajos lietošanas gadījumos mēs to izmantosim, lai atrastu tikai pašreizējo datumu un laiku.

SELĒNIJA Modulis tiek izmantots, lai automatizētu mūsu vietnes reģistrēšanu. Mēs varam automātiski pieteikties mūsu vietnē un atjaunināt to, izmantojot SELĒNIJA modulis. SELĒNIJA ir daudz iebūvētu funkciju, kuras tiek izmantotas dažādu ar pārlūkiem saistītu uzdevumu veikšanai.

Kā izpildīt sistēmas komandas Python

Mēs varam palaist sistēmas komandas pitonā, izmantojot OS un APAKŠPROCESS moduļi. Tālāk ir sintakse, lai palaistu sistēmas komandu python

os.sistēma ('komanda')

VAI

apakšprocess.zvans ('komanda')

Piemēram, ja mēs vēlamies uzskaitīt visus pašreizējā direktorijā esošos failus un direktorijus, mēs izpildīsim šādu komandu python skriptā

os.sistēma ('ls')

VAI

apakšprocess.zvans ('ls')

Kā automatizēt lietas ar Python

Python var izmantot, lai automatizētu daudzu veidu ikdienas uzdevumus, kas var ietaupīt laiku. Šeit mēs redzēsim dažus lietojuma automatizācijas gadījumus. Mēs apspriedīsim failu sakārtošanu lejupielādes direktorijā un svarīgu failu dublējuma saglabāšanu.

Failu kārtošana lejupielāžu direktorijā

Kad mēs lejupielādējam jebkura veida failus, pēc noklusējuma tas nonāk direktorijā Lejupielāde. Kad mums jāatrod kāds fails, tas var radīt problēmas, jo lejupielāžu direktorijā ir sajaukti daudzi failu veidi. Tagad mēs uzrakstīsim pitona skriptu, lai sistēmu automatizētu tādā veidā, lai dažāda veida faili (piemēram,.g. mp3, png, xls utt.) notiek dažādos direktorijos. Pilns kods ir norādīts zemāk. Šis kods pārbaudīs katru faila tipu pa vienam, pēc tam izveidos atbilstošo direktoriju. Pēc tam tas pārvietos failu saistītos direktorijos (piemēram,.g ... mp3 fails nonāks “Audio” direktorijā).

importēt os
importa štils
importēt datumu
kamēr 1:
# pašreizējās stundas, minūtes un sekundes aprēķināšana
šodien = datetime.datums Laiks.šodien ()
šodien = str (šodien)
pašreizējā_stunda = šodien [11:13]
current_minute = šodien [14:16]
current_sec = šodien [17:19]
# pārliecinoties, ka sistēma sakārtos failus plkst. 8:00
ja current_hour == '08' un current_minute == '00' un current_sec == '00':
# mainot direktoriju, lai lejupielādētu
os.chdir ("path_to_Download_directory")
# visu failu nosaukumu saglabāšana sarakstā
faili = os.listdir (os.getcwd ())
faila nosaukumam failos:
# direktoriju ignorēšana
ja ne os.ceļš.isdir (faila nosaukums):
# atlasa mp3 failus
ja '.mp3 'faila nosaukumā:
# izveidot direktoriju 'Audio', ja tāda nav
ja ne os.ceļš.pastāv (“Audio”):
os.mkdir ('Audio')
# pārvietojams fails direktorijā “Audio”
štils.pārvietot (faila nosaukums, “Audio”)
# atlasa mp4 failus
elif '.mp4 'faila nosaukumā:
# izveidot direktoriju 'Video', ja tāda nav
ja ne os.ceļš.pastāv (“Video”):
os.mkdir ('Video')
# pārvietojams fails direktorijā “Video”
štils.pārvietot (faila nosaukums, “Video”)
# atlasa pdf failus
elif '.pdf 'faila nosaukumā:
# izveidot 'PDF' direktoriju, ja tāda nav
ja ne os.ceļš.pastāv (“PDF”):
os.mkdir ('PDF')
# pārvietojams fails PDF direktorijā
štils.pārvietot (faila nosaukums, 'PDF')
# jpg un png failu atlase
elif '.JPG 'faila nosaukumā vai'.png 'faila nosaukumā:
# izveidot mapi 'Attēli', ja tāda nav
ja ne os.ceļš.pastāv (“Attēli”):
os.mkdir ('Attēli')
# pārvietojams fails direktorijā “Attēli”
štils.pārvietot (faila nosaukums, 'Attēli')
# Excel failu atlase
elif '.xls 'faila nosaukumā:
# izveidot 'Excel' direktoriju, ja tāda nav
ja ne os.ceļš.pastāv (“Excel”):
os.mkdir ('Excel')
# pārvietojams fails 'Excel' direktorijā
štils.pārvietot (faila nosaukums, 'Excel')
# atlasīšana.ppt 'faili
elif '.ppt 'faila nosaukumā:
# izveidojot direktoriju 'Power Point', ja tāda nav
ja ne os.ceļš.pastāv ('Power Point'):
os.mkdir ('Power Point')
# pārvietojams fails direktorijā 'Power Point'
štils.pārvietot (faila nosaukums, 'Power Point')
# atlasīšana.dokumentu faili
elif '.docx 'faila nosaukumā:
# izveidot direktoriju 'Word File', ja tāda nav
ja ne os.ceļš.pastāv ('Word fails'):
os.mkdir ('Word fails')
# pārvietojams fails direktorijā 'Word File'
štils.pārvietot (faila nosaukums, 'Word fails')

Pirmkārt, mēs ietaupīsim pašreizējo laiku dažādos mainīgajos, pēc tam pārbaudīsim, vai laiks ir precīzs '08: 00 'vai nē. Programma katru dienu pārbaudīs laiku un palaidīs kodu, ja laiks ir '08: 00 ', tad darbosies galvenais kods. Galvenajā kodā vispirms mainām direktoriju uz direktoriju Lejupielādēt. Šeit mēs visus failu nosaukumus saglabāsim ar nosaukumu faili. Tagad mēs lasīsim visus failus pa vienam un filtrēsim tikai failus. Mēs ignorēsim direktorijus, jo mēs kārtosim tikai failus.

Tagad mēs pārbaudīsim katru faila tipu, vai tas ir mp3, mp4, jpg, pdf, xls, ppt un docx vai nav. Pēc katra faila veida pārbaudes mēs pārbaudīsim, vai atbilstošais direktorijs pastāv vai nav. Piemēram, ja fails ir mp3, mēs pārbaudīsim, vai direktorija “Audio” ir vai nav. Ja atbilstošā direktorija neeksistē, mēs izveidosim direktoriju. Pēc direktorijas izveidošanas mēs pārvietosim failu šajā direktorijā. Tādā veidā visus failus var pārvietot uz tiem atbilstošajiem direktorijiem.

Šis kods darbosies nepārtraukti un turpinās pārbaudīt, vai laiks ir '08: 00 'vai nav. Katru dienu plkst. '08: 00 'faili tiks sakārtoti automātiski. Šo kodu var ieplānot palaist katru reizi, kad sākat sistēmu, izmantojot crontab. Crontab ir paskaidrots zemāk.

Automātiski dublējiet failus, izmantojot sistēmas komandas

Jums ir daži svarīgi faili direktorijā, kas saistīts ar jūsu projektu, un kaut kā daži faili tiek izdzēsti. Tad ko tu darīsi? Šādā situācijā ir svarīgi izveidot failu dublējumu. Bet failu dublējuma izveidošana ir patiešām garlaicīga un prasa daudz laika. Šo uzdevumu var veikt automātiski, uzrakstot pitona skriptu. Šis ir kods šī uzdevuma veikšanai. Šis kods pārveidos katru failu zip failā, pēc tam tas izveidos dublējuma direktoriju, ja tāda nav. Pēc tam zip fails tiks pārvietots dublējuma direktorijā.

importēt os
importēt datumu
kamēr 1:
# ietaupot pašreizējo laiku
šodien = datetime.datums Laiks.šodien ()
šodien = str (šodien)
pašreizējā_stunda = šodien [11:13]
current_minute = šodien [14:16]
current_sec = šodien [17:19]
# pārliecinoties, ka kods darbosies precīzi '08: 00 '
ja current_hour == '08' un current_minute == '00' un current_sec == '00':
# direktorija mainīšana uz dokumentiem
os.chdir ('path_to_documents_directory')
# visu failu nosaukumu saglabāšana sarakstā
faili = os.listdir (os.getcwd ())
# izveidot 'rezerves' direktoriju, ja tāda nav
ja ne os.ceļš.pastāv (“rezerves”):
os.mkdir ('rezerves kopija')
failam failos:
# direktoriju ignorēšana
ja ne os.ceļš.isdir (fails):
# faila nosaukuma noteikšana bez atstarpēm
sākotnējais_nosaukums = fails
fails = fails.sadalīt ("")
file_name = "".pievienoties (fails)
# defining zip_filename
zip_file_name = faila_nosaukums + ".zip "
# pārbaudīt, vai fails jau pastāv rezerves direktorijā vai nav
ja ne os.ceļš.pastāv ('backup /' + zip_file_name):
# faila nosaukuma maiņa bez atstarpēm
os.pārdēvēt (sākotnējais_nosaukums, faila_nosaukums)
# izveidot ZIP failu, izmantojot sistēmas komandu
os.sistēma ("zip" + zip_faila_nosaukums + "" + faila_nosaukums)
#moving zip failu dublējuma direktorijā, izmantojot sistēmas komandu
os.sistēma ("mv" + zip_file_name + "backup")
# mainot faila nosaukumu uz tā sākotnējo nosaukumu
os.pārdēvēt (faila_nosaukums, sākotnējais_nosaukums)

Vispirms mēs ietaupīsim pašreizējo laiku mainīgajos un pēc tam pārbaudīsim, vai laiks ir '08: 00 'vai nav. Ja laiks ir precīzs '08: 00 ', tiks palaists galvenais skripts. Galvenajā kodā, pirmkārt, mēs dodamies uz direktoriju, kurā atrodas svarīgi faili. Tad mēs visus failu nosaukumus saglabājam sarakstā. Tagad mēs izveidosim direktoriju 'backup', kurā mēs saglabāsim visus zip failus. Ja šī direktorija jau pastāv, mēs to ignorēsim. Tagad mēs izlasīsim katru failu un pārbaudīsim, vai tie ir faili. Katalogi tiks ignorēti, un faili tiks izskatīti.

Lai izveidotu faila zip failu, izmantojot sistēmas komandu, vispirms mēs pārdēvēsim šo failu bez atstarpēm, jo ​​faila nosaukums ar atstarpēm tiek uzskatīts par atšķirīgu failu katrā vietā, kad tas tiek palaists sistēmas komandā, izmantojot python skriptu. Faila nosaukums tiek saglabāts mainīgajā 'original_filename', un fails tiek pārdēvēts bez atstarpēm. Tagad mēs definēsim zip faila nosaukumu tāpat kā faila nosaukumu ar paplašinājumu '.zip '.

Pēc tam mēs izmantosim sistēmas komandu 'zip', lai saspiestu šo failu, un pēc tam mēs pārvietosim šo zip failu 'backup' direktorijā, izmantojot sistēmas komandu 'mv'. Tad mēs atkal pārdēvēsim failu ar tā sākotnējo nosaukumu ar atstarpēm. Šis kods tiks ieplānots sistēmā darboties katru reizi automātiski, kad sākat sistēmu, izmantojot crontab.

Automatizējiet skripta palaišanu, izmantojot Crontab

Mēs esam uzrakstījuši automatizācijas skriptus iepriekš. Tagad mēs vēlamies palaist šos skriptus automātiski, ikreiz, kad mūsu sistēma tiek restartēta. Lai to izdarītu, mēs pievienojam mūsu skriptu crontab. Lai pievienotu uzdevumu crontab, rīkojieties šādi

Vispirms ierakstiet šādu komandu, lai rediģētu crontab failu

ubuntu @ ubuntu: ~ $ crontab -e

-e karodziņš nozīmē atvērtu crontab rediģēšanas režīmā. Pēc crontab faila atvēršanas tagad mēs pievienosim savu uzdevumu šajā failā, izmantojot šādu komandu faila beigās

@reboot python / path / to / python / script

Tas automātiski palaidīs pitona skriptu katru reizi, kad palaižat sistēmu.

Secinājums

Šajā rakstā ir izskaidrota automatizācijas nozīme praktiskajā dzīvē. Izlasot šo rakstu, jūs gūstat ideju, kā jūs varat automatizēt savus vienkāršos uzdevumus, ko veicat katru dienu. Lai labāk un vienkāršāk automatizētu, noteikti jāmeklē vairāk pitonu bibliotēku un funkciju.

Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...
Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...