Programuotojai, programuotojai ir kūrėjai gali automatizuoti metodus naudodami Python scenarijus, sutaupydami jiems daug laiko ir pastangų atlikdami pasikartojančias operacijas. Python yra kompiuterinė kalba, tokia kaip „Java“, kuri puikiai veikia automatizuojant procesus. Palyginti su kitomis kalbomis, tai gana lengva išmokti. Jame taip pat yra didelė, gyvybinga bendruomenė ir integruotos bibliotekos, skirtos tam tikroms užduotims automatizuoti.
Python diegimas
Prieš pradėdami automatizuoti užduotis, kompiuteryje arba sistemoje įdiekite Python. Norėdami įdiegti Python, pirmiausia turite apsilankyti oficialioje Python svetainėje. Diegdami būtinai įtraukite Python prie sistemos PATH.
- Pasirinkite IDE arba teksto rengyklę
Python scenarijus kurti galima naudoti bet kurį teksto rengyklę. Vis dėlto integruotos kūrimo aplinkos (IDE), įskaitant „PyCharm“, „Visual Studio Code“ arba „Jupyter Notebook“, gali pagerinti procesą naudodami tokius įrankius kaip sintaksės paryškinimas ir derinimas. Tačiau šiame straipsnyje mes naudojame Notepad++.
- Nustatykite užduotį, kurią reikia automatizuoti
Tai gali apimti bet ką – nuo masinių el. laiškų siuntimo, ataskaitų kūrimo, failų atsisiuntimo ir atsarginių kopijų kūrimo.
- Tyrinėkite bibliotekas ir funkcijas
Peržiūrėkite funkcijas ir bibliotekas, kurios gali automatizuoti papildomas užduotis.
- Parašykite scenarijų Python
Čia mes surenkame visas dalis, kad sukurtume visą darbo scenarijų.
- Užduotis
Automatizuokite ataskaitų generavimą iš duomenų, saugomų skaičiuoklėje.
- Python scenarijus
Galime naudoti Python scenarijų, norėdami nuskaityti duomenis iš skaičiuoklės ir generuoti ataskaitas įvairiais formatais, tokiais kaip PDF, HTML arba CSV. Be to, scenarijus gali būti naudojamas automatiškai platinti ataskaitas suinteresuotosioms šalims el. paštu arba „Slack“.
Norint sukurti ataskaitas naudojant skaičiuoklės duomenis, reikia atlikti kelis veiksmus. Pateiksime supaprastintą Python scenarijų, kuris naudoja Pandas biblioteką duomenims iš Excel skaičiuoklės nuskaityti ir CSV ataskaitai sukurti. Atminkite, kad galime remtis šiuo scenarijumi, kad sukurtume sudėtingesnes ataskaitas kitais formatais ir prireikus automatizuotume el. pašto arba „Slack“ pranešimus.
Įdiekite reikalingas bibliotekas
Prieš paleisdami scenarijų, turime įdiegti Pandas biblioteką, jei ji dar neįdiegta:
pip diegti pandos openpyxl
Python kode yra funkcija gener_report(), kuri turi du argumentus: kelią į Excel skaičiuoklę, kurioje yra darbuotojų atlyginimo duomenys, ir kelią į CSV failą, kuriame turėtų būti išsaugota ataskaita.
Funkcija pirmiausia nuskaito Excel skaičiuoklę į Pandas DataFrame objektą. Tada ji atlieka duomenų apdorojimą ir analizę, jei reikia. Stulpelio „Atlyginimas“ suma šiuo atveju apskaičiuojama pagal funkciją.
Tada funkcija sukuria ataskaitos eilutę, kurioje yra bendras visų darbuotojų atlyginimas. Galiausiai funkcija išsaugo ataskaitą CSV faile.
Pagrindinė kodo funkcija nurodo įvesties „Excel“ failą ir išvesties ataskaitos failą, o tada iškviečia gener_report() funkciją, kad sukurtų ataskaitą.
GenReport.py:importuoti pandas kaip pd_obj
def generuoti_ataskaita ( emp_algos_duomenys, emp_algos_ataskaitos_failas ) :
bandyti:
# Skaitykite duomenis iš „Excel“ skaičiuoklės
df_obj = pd_obj.read_excel ( emp_algos_duomenys )
# Jei reikia, atlikite duomenų apdorojimą ir analizę
# Paprastumo dėlei tarkime, kad norime apskaičiuoti stulpelio sumą
alga_visa = df_obj [ 'Atlyginimas' ] .suma ( )
# Sukurkite ataskaitą
atlyginimo_ataskaita = f Iš viso visų darbuotojų atlyginimų: {salary_total}
# Išsaugokite ataskaitą į CSV failą
su atvira ( emp_salary_report_file, 'į' ) kaip csv_obj:
csv_obj.write ( atlyginimo_ataskaita )
spausdinti ( f 'Ataskaita sukurta ir išsaugota {emp_salary_report_file}' )
išskyrus Išimtį kaip pvz.:
spausdinti ( f 'Įvyko klaida: {str(e)}' )
jeigu __vardas__ == '__pagrindinis__' :
# Nurodykite įvesties „Excel“ failą ir išvesties ataskaitos failą
emp_salary_data = 'input_employee_data.xlsx'
emp_salary_report_file = 'salary_sum.csv'
# Norėdami sukurti ataskaitą, iškvieskite gener_report funkciją
generuoti_ataskaita ( emp_algos_duomenys, emp_algos_ataskaitos_failas )
Štai duomenys įvesties darbuotojo faile:
Išbandykite scenarijų
Turime nuodugniai išbandyti scenarijų po to, kai jis bus parašytas, kad įsitikintume, jog jis veikia taip, kaip numatyta. Naudojame Python kompiliatorių, kad patikrintume automatizuotą failą. Tokiu atveju šis failas sėkmingai sugeneruoja ir išsaugo ataskaitą CSV faile.
Suplanuokite arba suaktyvinkite scenarijų
Atsižvelgdami į automatizavimo reikalavimus, Python scenarijų galime vykdyti įvairiais būdais:
- Rankinis vykdymas: Paleiskite scenarijų rankiniu būdu, atlikdami jį IDE arba per komandinę eilutę naudodami šią komandą: python GenerateReport.py .
- Suplanuotos užduotys („Windows“): Naudodami „Windows“ užduočių planuoklį galime paleisti scenarijų tam tikru laiku arba tam tikrais intervalais. Naudodami „Windows“ paslaugą taip pat galime iškviesti konkretų įvykį.
- „Cron Jobs“ („Linux“ / „macOS“): Galime naudoti cron užduotis, kad suplanuotume scenarijaus paleidimą tam tikru laiku Unix tipo sistemose.
- Įvykių pagrindu: Galime suaktyvinti scenarijų reaguodami į konkrečius įvykius, pvz., failų pakeitimus, naudodami bibliotekas, pvz., „watchdog“, arba integruodami su žiniatinklio kabliukais.
MySQL atsarginės kopijos automatizavimas naudojant Python
Norėdami automatizuoti MySQL serverio atsarginių kopijų kūrimo procesą pagal valandinį tvarkaraštį, galime naudoti Python kartu su „mysqlclient“ biblioteka, kad prisijungtume prie MySQL duomenų bazės ir sukurtume atsargines kopijas, taip pat galime naudoti užduočių planuoklį, pvz., „Cron“ (pagrįstoje „Unix“ sistemos) paleisti Python scenarijų kas valandą. Toliau pateikiamas Python scenarijus, kurį galite naudoti šiuo tikslu:
1 veiksmas: įdiekite reikalingas bibliotekas
Turime įdiegti „mysqlclient“ biblioteką MySQL ryšiui. Galime įdiegti naudodami pip:
Pip diegti mysqlclient
pip diegti konfigūravimo įrankis
2 veiksmas: sukurkite konfigūracijos failą
Sukurkite tekstinį failą (pvz., mysqlconfig.ini), kad išsaugotumėte savo MySQL ryšio informaciją, įskaitant slaptažodį. Štai pavyzdys, kaip gali atrodyti „mysqlconfig.ini“ failas:
[ mysql ]mySQL_DB_HOST = localhost
mySQL_DB_USERNAME = root
mySQL_DB_PASSWORD = 1234 m
mySQL_DB_DATABASE_NAME = brandsw9_data
3 veiksmas: patikrinkite „MySQL Bin“ katalogą :
Komanda „mysqldump“ turėtų būti „MySQL bin“ kataloge. Patikrinkite, ar sistemos PATH yra bin katalogas. Galime modifikuoti PATH aplinkos kintamąjį, įtraukdami MySQL šiukšliadėžės vietą.
„Windows“ sistemoje: galime redaguoti sistemos PATH, meniu „Pradėti“ ištyrę „Aplinkos kintamuosius“ ir įtraukdami MySQL šiukšliadėžės katalogą (pvz., C:\Program Files\MySQL\MySQL Server X.X\bin) prie PATH kintamojo.
3 veiksmas: parašykite Python scenarijų
Norėdami automatizuoti MySQL atsarginės kopijos kūrimo procesą, sukurkite Python scenarijų, pvz., MySQLBackup.py. Jei reikia, pakeiskite vietos rezervavimo ženklus duomenų bazės ryšio informacija ir failo keliais.
importo subprocesas kaip spfrom datetime import datetime kaip dt_obj
importuoti konfigūravimo programą kaip mysql_confg
# MySQL duomenų bazės ryšio informacija
# Įkelkite MySQL ryšio informaciją iš konfigūracijos failo
config_obj = mysql_confg.ConfigParser ( )
config_obj.read ( 'mysqlconfig.ini' ) # Jei reikia, pakoreguokite kelią
mySQL_DB_HOST = config_obj.get ( 'mysql' , „mySQL_DB_HOST“ )
mySQL_DB_USERNAME = config_obj.get ( 'mysql' , „mySQL_DB_USERNAME“ )
mySQL_DB_PASSWORD = config_obj.get ( 'mysql' , „mySQL_DB_PASSWORD“ )
mySQL_DB_DATABASE_NAME = config_obj.get ( 'mysql' , „mySQL_DB_DATABASE_NAME“ )
# Atsarginis katalogas
bk_dir = 'atsarginis_katalogas/'
# Gaukite dabartinę atsarginės kopijos failo pavadinimo datą ir laiką
laiko žymos = dt_obj.now ( ) .strftime ( „%Y%m%d%H%M%S“ )
# Apibrėžkite atsarginės kopijos failo pavadinimą
mano_sql_bk = f 'atsarginė kopija_{timestamp_oj}.sql'
# MySQL dump komanda
mysql_dump_cmd = f 'mysqldump -h {mySQL_DB_HOST} -u {mySQL_DB_USERNAME} -p{mySQL_DB_PASSWORD} {mySQL_DB_DATABASE_NAME} > {bk_dir}{my_sql_bk}'
bandyti:
# Vykdykite MySQL dump komandą, kad sukurtumėte atsarginę kopiją
sp.run ( mysql_dump_cmd, apvalkalas = Tiesa, patikrinti = Tiesa )
spausdinti ( f „Atsarginė kopija sukurta ir išsaugota kaip „{my_sql_bk}“ aplanke „{bk_dir}““ )
išskyrus sp.CalledProcessError kaip Tai yra:
spausdinti ( f „Klaida kuriant atsarginę kopiją: {str(e)}“ )
4 veiksmas: išbandykite ir paleiskite kodą
5 veiksmas: suplanuokite scenarijų naudodami „Windows“ užduočių planuoklį
Dabar suplanuokime Python scenarijų, kad jis būtų paleistas automatiškai, naudojant „Windows“ užduočių planuoklį:
Paleiskite „Windows“ užduočių planuoklį, meniu „Pradėti“ paieškos juostoje įvesdami „Task Scheduler“ arba dialogo lange „Run“ (Win + R) įvesdami „taskschd.msc“.
Kairiojoje užduočių planuoklio srityje pasirinkite „Task Scheduler Library“.
Dešinėje srityje spustelėkite „Sukurti pagrindinę užduotį…“, kad atidarytumėte „Pagrindinės užduoties kūrimo vedlį“.
Įveskite užduoties pavadinimą ir aprašymą. Tada paspauskite „Kitas“.
Kaip paleidimo tipą pasirinkite „Kasdien“ (nors norite jį paleisti kas valandą, tai leidžia nustatyti kartojimo intervalą). Tada spustelėkite „Kitas“.
Nurodykite atsarginės kopijos kūrimo užduoties pradžios datą ir laiką.
Pasirinkite „Pakartoti užduotį kas:“ ir nustatykite 1 valandą.
Nustatykite trukmę į „1 diena“. Tada spustelėkite „Kitas“.
Pasirinkite „Pradėti programą“ ir paspauskite „Kitas“.
Naršykite ir pasirinkite Python vykdomąjį failą (python.exe) spustelėdami „Naršyti“.
Naršykite ir pasirinkite Python vykdomąjį failą (python.exe) spustelėdami „Naršyti“.
Lauke „Pridėti argumentų“ įveskite visą Python scenarijaus kelią (pvz., C:\path\to\mysql_backup.py).
Lauke „Pradėti (neprivaloma)“ įveskite katalogą, kuriame yra jūsų Python scenarijus (pvz., C:\path\to\).
Spustelėkite „Kitas“.
Peržiūrėkite užduoties nustatymus ir spustelėkite „Baigti“, kad sukurtumėte užduotį.
Išvada
Naudodami Python įrankius ir geriausią praktiką galime sukurti patikimus ir efektyvius automatizavimo scenarijus, kurie sutrumpina darbo eigos laiką ir skiriame ją svarbesnei veiklai. Pateikėme keletą pavyzdžių, kurie tikrai padės automatizuoti užduotis naudojant Python scenarijus.