Taken automatiseren met Python-scripts

Taken Automatiseren Met Python Scripts



Programmeurs, programmeurs en ontwikkelaars kunnen de methoden automatiseren met behulp van Python-scripts, waardoor ze veel tijd en moeite besparen door repetitieve bewerkingen uit te voeren. Python is een computertaal, net als Java, die goed presteert in procesautomatisering. In vergelijking met andere talen is het relatief eenvoudig te leren. Het heeft ook een grote, levendige community en ingebouwde bibliotheken om bepaalde taken te automatiseren.

Python installeren

Voordat u begint met het automatiseren van de taken, installeert u Python op de computer of het systeem. Om Python te installeren, moet je eerst de officiële Python-website bezoeken. Zorg ervoor dat u Python tijdens de installatie aan het PATH van het systeem toevoegt.







  1. Selecteer een IDE of teksteditor

Elke teksteditor kan worden gebruikt om de Python-scripts te bouwen. Toch kunnen de Integrated Development Environments (IDE's), waaronder PyCharm, Visual Studio Code of Jupyter Notebook, het proces verbeteren met tools als syntaxisaccentuering en foutopsporing. In dit artikel gebruiken we echter Notepad++.



  1. Bepaal de taak die moet worden geautomatiseerd

Dit kan van alles zijn, van het verzenden van bulk-e-mails, het maken van rapporten, het downloaden van bestanden en het maken van back-ups.



  1. Onderzoek de bibliotheken en functies

Kijk naar de functies en bibliotheken die de subtaken kunnen automatiseren.





  1. Schrijf het script in Python

Hier verzamelen we alle onderdelen om een ​​compleet werkend script te creëren.

  1. Taak

Automatiseer het genereren van rapporten op basis van de gegevens die zijn opgeslagen in een spreadsheet.



  1. Python-script

We kunnen een Python-script gebruiken om de gegevens uit een spreadsheet te lezen en rapporten te genereren in verschillende formaten, zoals PDF, HTML of CSV. Bovendien kan het script worden gebruikt om de rapporten automatisch via e-mail of Slack naar belanghebbenden te distribueren.

Er zijn meerdere stappen nodig om rapporten te maken met behulp van de spreadsheetgegevens. We geven u een vereenvoudigd Python-script dat de Pandas-bibliotheek gebruikt om de gegevens uit een Excel-spreadsheet te lezen en een CSV-rapport te maken. Houd er rekening mee dat we op dit script kunnen voortbouwen om ingewikkeldere rapporten in andere formaten te produceren en de e-mail- of Slack-meldingen indien nodig te automatiseren.

Installeer de vereiste bibliotheken

Voordat we het script uitvoeren, moeten we de Pandas-bibliotheek installeren als deze nog niet is geïnstalleerd:

Pip installeren panda's openpyxl

De Python-code heeft een functie genaamd genereren_report() waaraan twee argumenten moeten doorgegeven worden: het pad naar een Excel-spreadsheet dat de salarisgegevens van de werknemer bevat en het pad naar een CSV-bestand waar het rapport moet worden opgeslagen.

De functie leest eerst het Excel-spreadsheet in een Pandas DataFrame-object. Vervolgens voert het indien nodig de gegevensverwerking en -analyse uit. De som van de kolom “Salaris” wordt in dit geval door de functie berekend.

Vervolgens maakt de functie een rapportreeks aan die het totale salaris van alle werknemers bevat. Ten slotte slaat de functie het rapport op in een CSV-bestand.

De hoofdfunctie van de code specificeert het Excel-invoerbestand en het uitvoerrapportbestand en roept vervolgens de functie genereren_report() aan om het rapport te maken.

GenReport.py:
panda's importeren als pd_obj
def genereren_rapport ( emp_salary_data, emp_salary_report_file ) :
poging:
# Gegevens lezen uit het Excel-spreadsheet
df_obj = pd_obj.read_excel ( emp_salaris_data )
# Voer indien nodig gegevensverwerking en analyse uit
# Laten we voor de eenvoud aannemen dat we de som van een kolom willen berekenen
salaris_totaal = df_obj [ 'Salaris' ] .som ( )
# Maak een rapport
salarisrapport = f 'Totaal van alle salarissen van werknemers: {salary_total}'
# Sla het rapport op in een CSV-bestand
met geopend ( emp_salarisrapport_bestand, 'In' ) als csv_obj:
csv_obj.write ( salarisrapport )

afdrukken ( F 'Rapport gegenereerd en opgeslagen in {emp_salary_report_file}' )
behalve Uitzondering als ex:
afdrukken ( F 'Er is een fout opgetreden: {str(e)}' )
als __naam__ == '__voornaamst__' :
# Specificeer het invoer-Excel-bestand en het uitvoerrapportbestand
emp_salary_data = 'invoer_werknemer_data.xlsx'
emp_salary_report_file = 'salarissom.csv'
# Roep de generator_report-functie aan om het rapport te maken
genereren_rapport ( emp_salary_data, emp_salary_report_file )

Hier zijn de gegevens in het ingevoerde werknemersbestand:

Test het script

We moeten het script uitgebreid testen nadat het is geschreven om er zeker van te zijn dat het functioneert zoals bedoeld. We gebruiken de Python-compiler om het bestand dat we automatiseren te testen. In dit geval genereert dit bestand het rapport en slaat het op in een CSV-bestand.

Plan of activeer het script

Afhankelijk van de eisen van de automatisering kunnen we het Python-script op verschillende manieren uitvoeren:

  • Handmatige uitvoering: Voer het script handmatig uit door het uit te voeren in een IDE of via de opdrachtregel met behulp van de volgende opdracht: python GenerateReport.py .
  • Geplande taken (Windows): We kunnen het script op specifieke tijden of intervallen uitvoeren met behulp van de Windows Task Scheduler. Met behulp van de Windows Service kunnen we ook een specifieke gebeurtenis oproepen.
  • Cronjobs (Linux/macOS): We kunnen cron-taken gebruiken om te plannen dat het script op specifieke tijden op Unix-achtige systemen wordt uitgevoerd.
  • Gebeurtenisgestuurd: We kunnen uw script activeren als reactie op specifieke gebeurtenissen, zoals bestandswijzigingen, met behulp van bibliotheken zoals watchdog of door integratie met webhooks.

Automatisering van de MySQL-back-up met Python

Om het back-upproces van een MySQL-server volgens een uurschema te automatiseren, kunnen we Python gebruiken in combinatie met de “mysqlclient”-bibliotheek om verbinding te maken met de MySQL-database en back-ups te maken, en we kunnen een taakplanner zoals Cron gebruiken (op Unix-gebaseerd systemen) om het Python-script elk uur uit te voeren. Het volgende is een Python-script dat u voor dit doel kunt gebruiken:

Stap 1: Installeer de vereiste bibliotheken

We moeten de “mysqlclient” -bibliotheek installeren voor MySQL-connectiviteit. We kunnen het installeren met pip:

Pip installeren mysqlclient

Pip installeren configuratieparser

Stap 2: Maak een configuratiebestand

Maak een tekstbestand (bijvoorbeeld mysqlconfig.ini) om uw MySQL-verbindingsgegevens op te slaan, inclusief het wachtwoord. Hier is een voorbeeld van hoe het bestand “mysqlconfig.ini” eruit zou kunnen zien:

[ mysql ]
mySQL_DB_HOST = lokalehost
mySQL_DB_USERNAME = hoofdmap
mijnSQL_DB_PASSWORD = 1234
mySQL_DB_DATABASE_NAME = merkenw9_data

Stap 3: Controleer de MySQL Bin-directory :

De opdracht “mysqldump” moet zich in de MySQL bin-map bevinden. Controleer of het PATH van het systeem de bin-map bevat. We kunnen de omgevingsvariabele PATH wijzigen om de MySQL-binlocatie op te nemen.

Op Windows: We kunnen het PATH van het systeem bewerken door te zoeken naar “Omgevingsvariabelen” in het menu “Start” en de MySQL bin-map (bijvoorbeeld C:\Program Files\MySQL\MySQL Server X.X\bin) toe te voegen aan de PATH-variabele.

Stap 3: Schrijf het Python-script

Maak een Python-script, bijvoorbeeld MySQLBackup.py, om het MySQL-back-upproces te automatiseren. Vervang de tijdelijke aanduidingen indien nodig door de databaseverbindingsgegevens en bestandspaden.

subproces importeren als sp
van datetime importeer datetime als dt_obj
configuratieparser importeren als mysql_confg
# MySQL-databaseverbindingsdetails
# Laad MySQL-verbindingsgegevens uit het configuratiebestand
config_obj = mysql_confg.ConfigParser ( )
config_obj.read ( 'mysqlconfig.ini' ) # Pas het pad indien nodig aan
mySQL_DB_HOST = config_obj.get ( 'mysql' , 'mijnSQL_DB_HOST' )
mySQL_DB_USERNAME = config_obj.get ( 'mysql' , 'mijnSQL_DB_USERNAME' )
mySQL_DB_PASSWORD = config_obj.get ( 'mysql' , 'mijnSQL_DB_PASSWORD' )
mySQL_DB_DATABASE_NAME = config_obj.get ( 'mysql' , 'mijnSQL_DB_DATABASE_NAME' )
# Back-upmap
bk_dir = 'back-upmap/'
# Haal de huidige datum en tijd op voor de back-upbestandsnaam
tijdstempels = dt_obj.now ( ) .strftijd ( '%Y%m%d%H%M%S' )
# Definieer de naam van het back-upbestand
mijn_sql_bk = f 'backup_{tijdstempel_oj}.sql'
# MySQL-dumpopdracht
mijnsql_dump_cmd = f 'mysqldump -h {mySQL_DB_HOST} -u {mySQL_DB_USERNAME} -p{mySQL_DB_PASSWORD} {mySQL_DB_DATABASE_NAME} > {bk_dir}{mijn_sql_bk}'

poging:
# Voer de MySQL-dumpopdracht uit om een ​​back-up te maken
sp.run ( mijnsql_dump_cmd, schelp =Waar, rekening =Waar )
afdrukken ( F 'Back-up voltooid en opgeslagen als '{my_sql_bk}' in '{bk_dir}'' )
behalve sp.CalledProcessError als Het is:
afdrukken ( F 'Fout bij maken van back-up: {str(e)}' )

Stap 4: Test en voer de code uit

Stap 5: Plan het script met Windows Task Scheduler

Laten we nu plannen dat het Python-script automatisch wordt uitgevoerd met behulp van de Windows Task Scheduler:

Start de Windows Taakplanner door 'Taakplanner' in de zoekbalk van het menu 'Start' te typen of door 'taskschd.msc' in het dialoogvenster 'Uitvoeren' te typen (Win + R).

Selecteer 'Taakplannerbibliotheek' in het linkerdeelvenster van Taakplanner.

Klik in het rechterdeelvenster op 'Basistaak maken ...' om de wizard 'Basistaak maken' te openen.

Voer een taaknaam en beschrijving in. Druk vervolgens op “Volgende”.

Kies 'Dagelijks' als triggertype (ook al wilt u het elk uur uitvoeren, hiermee kunt u een herhalingsinterval instellen). Klik vervolgens op “Volgende”.

Geef de startdatum en -tijd op voor de back-uptaak.

Kies 'Herhaal taak elke:' en stel deze in op 1 uur.

Stel de duur in op “1 dag”. Klik vervolgens op “Volgende”.

Kies “Start een programma” en druk vervolgens op “Volgende”.

Blader en selecteer het uitvoerbare Python-bestand (python.exe) door op 'Bladeren' te klikken.

Blader en selecteer het uitvoerbare Python-bestand (python.exe) door op 'Bladeren' te klikken.

Voer het volledige pad naar uw Python-script in (bijvoorbeeld C:\path\to\mysql_backup.py) in het veld 'Argumenten toevoegen'.

Voer de map in die uw Python-script bevat (bijvoorbeeld C:\pad\naar\) in het veld 'Start in (optioneel)'.

Klik op “Volgende.”

Controleer de taakinstellingen en klik op “Voltooien” om de taak aan te maken.

Conclusie

We kunnen betrouwbare en effectieve automatiseringsscripts bouwen die de tijd van workflows verkorten en deze aan belangrijkere activiteiten besteden door gebruik te maken van de tools en best practices van Python. We hebben enkele voorbeelden gegeven die u zeker zullen helpen uw taken te automatiseren met behulp van Python-scripts.