„Python“

Užduočių planavimas naudojant „Python“

Užduočių planavimas naudojant „Python“
Kai kurios mūsų gyvenimo užduotys tikrai užtrunka ir mums nuobodu atlikti tas užduotis pakartotinai. Siekdami išvengti tų nuobodžių užduočių, mes automatizuojame tas užduotis savo sistemoje. „Python“ turi daug automatizavimo modulių, kuriuos galima naudoti mūsų dalykų automatizavimui. Toliau aptarsime automatikos svarbą ir kaip automatizuoti savo daiktus naudojant pitoną. Mes taip pat aptarsime kai kuriuos automatizavimo modulius „python“, kurie padeda automatizuoti mūsų dalykus. Tada pamatysime kai kuriuos automatizavimo naudojant pitoną naudojimo atvejus. Pabaigoje pamatysime, kaip galime suplanuoti savo python scenarijaus paleidimą automatiškai paleidimo metu.

Kodėl mes automatizuojame savo daiktus

Mūsų daiktų automatizavimas gali palengvinti mūsų gyvenimą. Tai turi daug privalumų, tačiau keletas svarbių automatikos pranašumų yra pateikti žemiau

Automatika su „Python“

Yra keletas scenarijų kalbų, tokių kaip bash, perl ir kt. automatizuoti rankinius procesus, tačiau pitonas suteikia įmanoma aplinką mūsų poreikiams patenkinti. Naudojant „Python“ programavimo kalbą lengviau automatizuoti daiktus nei bet kuria kita kalba. „Python“ turi daug automatikos modulių (t.e. subprocesas, štilis, os, pyautogui, selenas ir pan.), kuri gali būti naudojama automatikoje. Matysime keletą naudojimo atvejų, kaip automatizuojame savo daiktus.

Automatizavimo moduliai „Python“

Čia aptarsime keletą automatizavimo modulių, panašių į „Python“ OS, SUBPROCESS, SHUTIL, DATETIME, SELENIUM ir pan. Šie moduliai naudojami sistemos komandoms vykdyti ir taip pat gali būti naudojami manipuliuoti sistemos katalogais. Šie moduliai turi įmontuotas funkcijas, kurios palengvina užduočių atlikimą sistemoje.

OS ir SUBPROCESAS moduliai naudojami beveik tuo pačiu tikslu. Kai kurios iš šių modulių integruotų funkcijų yra pateiktos žemiau

Panašiai ŠUTILAS modulis turi daug funkcijų, leidžiančių sąveikauti su sistema. Kai kurios šio modulio funkcijos pateikiamos žemiau

DATETIME modulis naudojamas dabartinei datai ir laikui rasti. Jis taip pat naudojamas savaitės dienai ir daugeliui kitų dalykų rasti. Naudodamiesi šiuo moduliu, galime planuoti savo užduotį bet kuriuo metu ir bet kada. Tolesniais naudojimo atvejais mes jį naudosime norėdami rasti tik dabartinę datą ir laiką.

SELENIJA Modulis naudojamas mūsų svetainės registravimo proceso automatizavimui. Mes galime automatiškai prisijungti prie savo svetainės ir ją atnaujinti naudodami SELENIJA modulis. SELENIJA turi daug įtaisytų funkcijų, kurios naudojamos skirtingoms su naršyklėmis susijusioms užduotims atlikti.

Kaip vykdyti sistemos komandas „Python“

Mes galime paleisti sistemos komandas pitone naudodami OS ir SUBPROCESAS moduliai. Toliau pateikiama sintaksė paleisti sistemos komandą „Python“

os.sistema („komanda“)

ARBA

antrinis procesas.skambutis („komanda“)

Pvz., Jei norime išvardyti visus failus ir katalogus dabartiniame kataloge, vykdysime šią komandą Python scenarijuje

os.sistema („ls“)

ARBA

antrinis procesas.skambutis („ls“)

Kaip automatizuoti daiktus naudojant „Python“

„Python“ gali būti naudojamas automatizuoti įvairias kasdienes užduotis, kurios gali sutaupyti laiko. Čia mes pamatysime kai kuriuos mūsų daiktų automatizavimo atvejus. Aptarsime failų tvarkymą atsisiuntimo kataloge ir svarbių failų atsarginių kopijų išsaugojimą.

Failų tvarkymas atsisiuntimų kataloge

Kai atsisiunčiame bet kokio tipo failą, pagal numatytuosius nustatymus jis patenka į atsisiuntimo katalogą. Kai turime rasti bet kurį failą, tai gali sukelti problemų, nes atsisiuntimo kataloge yra daugybė failų tipų. Dabar mes parašysime python scenarijų, kad sistema būtų automatizuota taip, kad skirtingų tipų failai (pvz.,.g. mp3, png, xls ir kt.) pateikiami skirtinguose kataloguose. Pilnas kodas pateiktas žemiau. Šis kodas patikrins kiekvieną failo tipą po vieną ir sukurs atitinkamą katalogą. Po to failas bus perkeltas į susijusius katalogus (pvz.,.g ... mp3 failas pateks į „Garso“ katalogą).

importuoti os
importuoti šleilą
importavimo laikas
o 1:
# dabartinės valandos, minutės ir sekundės skaičiavimas
šiandien = datos laikas.datos laikas.šiandien ()
šiandien = str (šiandien)
current_hour = šiandien [11:13]
current_minute = šiandien [14:16]
current_sec = šiandien [17:19]
# įsitikinkite, kad sistema tvarkys failus 08:00
jei current_hour == '08' ir current_minute == '00' ir current_sec == '00':
# pakeisti katalogą atsisiųsti
os.chdir ("path_to_Download_directory")
# išsaugo visus failų pavadinimus sąraše
failai = os.listdir (os.getcwd ()
failo vardui failuose:
# ignoruojant katalogus
jei ne os.kelias.isdir (failo vardas):
# pasirenkami mp3 failai
jei '.mp3 'failo pavadinime:
# sukurti „Audio“ katalogą, jei jo nėra
jei ne os.kelias.egzistuoja („Audio“):
os.mkdir ('Audio')
# judantis failas kataloge „Audio“
šliuzas.perkelti (failo pavadinimas, „Garso įrašas“)
# pasirenkami mp4 failai
elifas.mp4 'failo pavadinime:
# sukurti „Video“ katalogą, jei jo nėra
jei ne os.kelias.egzistuoja („Video“):
os.mkdir („Video“)
# judantis failas kataloge „Video“
šliuzas.perkelti (failo pavadinimas, „Vaizdo įrašas“)
# PDF failų pasirinkimas
elifas.pdf 'failo pavadinime:
# sukurti „PDF“ katalogą, jei jo nėra
jei ne os.kelias.egzistuoja („PDF“):
os.mkdir („PDF“)
# judantis failas PDF kataloge
šliuzas.perkelti (failo pavadinimas, „PDF“)
# pasirinkti JPG ir Png failus
elifas.JPG 'failo pavadinime arba'.png 'failo pavadinime:
# sukurti katalogą „Paveikslėliai“, jei jo nėra
jei ne os.kelias.egzistuoja („Paveikslėliai“):
os.mkdir ('Paveikslėliai')
# judantis failas kataloge „Paveikslėliai“
šliuzas.perkelti (failo pavadinimas, „Paveikslėliai“)
# „Excel“ failų pasirinkimas
elifas.xls 'failo pavadinime:
# sukurti „Excel“ katalogą, jei jo nėra
jei ne os.kelias.egzistuoja („Excel“):
os.mkdir („Excel“)
# judantis failas „Excel“ kataloge
šliuzas.perkelti (failo pavadinimas, „Excel“)
# pasirinkimas.ppt 'failus
elifas.ppt 'failo pavadinime:
# kuriant katalogą „Power Point“, jei jo nėra
jei ne os.kelias.egzistuoja („Power Point“):
os.mkdir („Power Point“)
# juda failas kataloge „Power Point“
šliuzas.perkelti (failo pavadinimas, „Power Point“)
# pasirinkimas.dokumentų failus
elifas.docx 'failo pavadinime:
# sukurti „Word File“ katalogą, jei jo nėra
jei ne os.kelias.egzistuoja ('Word failas'):
os.mkdir ('Word failas')
# juda failas kataloge „Word File“
šliuzas.perkelti (failo pavadinimas, „Word File“)

Visų pirma, išsaugosime esamą laiką skirtingais kintamaisiais, tada patikrinsime, ar laikas tikslus '08: 00 ', ar ne. Programa tikrins laiką kiekvieną dieną ir vykdys kodą, jei laikas yra „08: 00 “, tada veiks pagrindinis kodas. Pagrindiniame kode pirmiausia pakeičiame katalogą į Atsisiųsti katalogą. Čia mes išsaugosime visus failų vardus failų sąraše. Dabar mes perskaitysime visus failus po vieną ir filtruosime tik failus. Mes nepaisysime katalogų, nes tvarkysime tik failus.

Dabar patikrinsime kiekvieno failo tipą, ar tai yra mp3, mp4, jpg, pdf, xls, ppt ir docx, ar ne. Patikrinę kiekvieną failo tipą, mes patikrinsime, ar yra atitinkamas katalogas. Pavyzdžiui, jei failas yra mp3, mes patikrinsime, ar „Audio“ katalogas yra, ar ne. Jei atitinkamo katalogo nėra, sukursime katalogą. Sukūrę katalogą perkelsime savo failą tame kataloge. Tokiu būdu visus failus galima perkelti į atitinkamus katalogus.

Šis kodas veiks nuolat ir tikrins, ar laikas yra „08:00“, ar ne. Kiekvieną dieną „08: 00“ failai bus tvarkomi automatiškai. Šis kodas gali būti suplanuotas paleisti kiekvieną kartą, kai paleidžiate sistemą naudodami „crontab“. „Crontab“ paaiškinta toliau.

Automatiškai kurkite atsargines failų kopijas naudodami sistemos komandas

Kataloge turite keletą svarbių failų, susijusių su jūsų projektu, ir kažkaip kai kurie failai ištrinami. Tada ką padarysi? Tokioje situacijoje svarbu sukurti atsarginę failų kopiją. Bet sukurti atsarginę failų kopiją yra tikrai nuobodu ir reikia laiko. Šią užduotį galima atlikti automatiškai, parašant pitono scenarijų. Toliau pateikiamas kodas atlikti šią užduotį. Šis kodas pavers kiekvieną failą į ZIP failą, tada sukurs atsarginį katalogą, jei jo nėra. Po to, ZIP failas bus perkeltas atsarginių kopijų kataloge.

importuoti os
importavimo laikas
o 1:
# taupyti dabartinį laiką
šiandien = datos laikas.datos laikas.šiandien ()
šiandien = str (šiandien)
current_hour = šiandien [11:13]
current_minute = šiandien [14:16]
current_sec = šiandien [17:19]
# įsitikinkite, kad kodas veiks tiksliai „08: 00 “
jei current_hour == '08' ir current_minute == '00' ir current_sec == '00':
# katalogo keitimas į dokumentus
os.chdir ('path_to_documents_directory')
# išsaugo visus failų pavadinimus sąraše
failai = os.listdir (os.getcwd ()
# sukurti „atsarginį“ katalogą, jei jo nėra
jei ne os.kelias.egzistuoja („atsarginė kopija“):
os.mkdir („atsarginė kopija“)
failui failuose:
# ignoruojant katalogus
jei ne os.kelias.isdir (failas):
# failo pavadinimo be tarpų apibrėžimas
originalus_pavadinimas = failas
failas = failas.padalinti ("")
failo_pavadinimas = "".prisijungti (failas)
# defining zip_filename
zip_file_name = failo_vardas + ".zip "
# patikrinti, ar failas jau yra atsarginių kopijų kataloge, ar ne
jei ne os.kelias.egzistuoja („backup /“ + zip_file_name):
# failo pavadinimo keitimas be tarpų
os.pervardyti (originalus_vardas, failo_vardas)
# sukurti ZIP failą naudojant sistemos komandą
os.sistema ("zip" + zip_failo_vardas + "" + failo_vardas)
#moving zip failą atsarginės kopijos kataloge naudodami sistemos komandą
os.sistema („mv“ + zip_file_name + „backup“)
# failo pavadinimo keitimas į pradinį pavadinimą
os.pervardyti (failo_vardas, originalus_vardas)

Visų pirma sutaupysime dabartinį laiką kintamuosiuose ir tada patikrinsime, ar laikas yra „08: 00“, ar ne. Jei laikas yra tikslus '08: 00 ', tada bus paleistas pagrindinis scenarijus. Pagrindiniame kode pirmiausia einame į katalogą, kuriame yra svarbūs failai. Tada visus failų pavadinimus išsaugome sąraše. Dabar sukursime katalogo „atsarginę kopiją“, kurioje išsaugosime visus zip failus. Jei šis katalogas jau yra, mes to nepaisysime. Dabar mes perskaitysime kiekvieną failą ir patikrinsime, ar tai failai, ar ne. Katalogai bus ignoruojami, o bylos bus svarstomos.

Norėdami sukurti failo ZIP failą naudodami sistemos komandą, pirmiausia šį failą pervardysime be tarpų, nes failo vardas su tarpais laikomas skirtingu failu kiekvienoje vietoje, kai paleidžiama į sistemos komandą naudojant Python scenarijų. Failo pavadinimas išsaugomas kintamajame „original__filename“ ir failas pervadinamas be tarpų. Dabar zip failo pavadinimą apibrėžsime taip pat, kaip failo pavadinimą su plėtiniu “.zip '.

Po to naudosime sistemos komandą „zip“, kad sukurtumėte šį failą, o tada perkelsime šį zip failą į „atsarginį“ katalogą naudodami sistemos komandą „mv“. Tada mes dar kartą pervadinsime failą su originaliu pavadinimu su tarpais. Šis kodas sistemoje bus suplanuotas paleisti kiekvieną kartą automatiškai, kai paleidžiate sistemą naudodami „crontab“.

Automatizuokite scenarijaus naudojimą naudodami „Crontab“

Mes parašėme aukščiau esančius automatikos scenarijus. Dabar norime šiuos scenarijus paleisti automatiškai, kai tik sistema paleidžiama iš naujo. Norėdami tai padaryti, mes įtraukiame savo scenarijų į crontab. Norėdami pridėti užduotį crontab, atlikite šiuos veiksmus

Visų pirma, norėdami redaguoti crontab failą, įveskite šią komandą

ubuntu @ ubuntu: ~ $ crontab -e

-„e flag“ reiškia atidarytą „crontab“ redagavimo režimu. Atidarę „crontab“ failą, mes pridėsime savo užduotį šiame faile naudodami šią komandą failo pabaigoje

@reboot python / path / to / python / script

Tai paleis python scenarijų automatiškai kiekvieną kartą paleidus sistemą.

Išvada

Šiame straipsnyje paaiškinta automatikos svarba praktiniame gyvenime. Perskaitydami šį straipsnį, sugalvosite, kaip automatizuoti paprastas užduotis, kurias atliekate kasdien. Turėtumėte ieškoti daugiau python bibliotekų ir funkcijų, kad būtų lengviau ir lengviau automatizuoti.

Kaip naudoti „Xdotool“, norint paskatinti pelės paspaudimus ir klavišų paspaudimus sistemoje „Linux“
„Xdotool“ yra nemokamas ir atviro kodo komandinės eilutės įrankis, skirtas pelės paspaudimams ir klavišų paspaudimams imituoti. Šis straipsnis apims t...
5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...