Waarom we onze dingen automatiseren
Automatisering van onze spullen kan ons leven gemakkelijker maken. Het heeft veel voordelen, maar enkele belangrijke voordelen van automatisering worden hieronder gegeven:
- Het eerste en belangrijkste voordeel van automatisering is om tijd te besparen.
- We kunnen de efficiëntie van ons werk verhogen (i.e. meer werk in minder tijd)
- De nauwkeurigheid van de geplande taken kan worden verbeterd.
- Door dingen te automatiseren, wordt menselijke interactie met het systeem verminderd, zodat saaie dingen worden geautomatiseerd.
Automatisering met Python
Er zijn een aantal scripttalen zoals bash, perl etc. om handmatige processen te automatiseren, maar python biedt een haalbare omgeving om aan onze behoeften te voldoen. Het is gemakkelijker om dingen te automatiseren met de programmeertaal Python dan in welke andere taal dan ook. Python heeft veel automatiseringsmodules (i.e. subproces, shutil, os, pyautogui, selenium enz.) die kunnen worden gebruikt in automatisering. We zullen enkele use-cases zien van hoe we onze dingen automatiseren.
Automatiseringsmodules in Python
Hier zullen we enkele automatiseringsmodules in python bespreken, zoals: OS, SUBPROCES, SHUTIL, DATETIME, SELENIUM enz. Deze modules worden gebruikt om systeemopdrachten uit te voeren en kunnen ook worden gebruikt om systeemmappen te manipuleren. Deze modules hebben ingebouwde functies die het gemakkelijker maken om taken op het systeem uit te voeren.
OS en SUBPROCES modules worden voor bijna hetzelfde doel gebruikt. Enkele van de ingebouwde functies van deze modules worden hieronder gegeven:
- chdir() \\ Map wijzigen
- mkdir() \\ Om een nieuwe map te maken
- rename() \\ Om een bestand te hernoemen
- listdir() \\ Om alle bestanden en mappen weer te geven
- getcwd() \\ Om onze huidige directory te kennen
- system() \\ Systeemopdrachten uitvoeren
- call() \\ Om systeemopdrachten uit te voeren
evenzo SHUTIL module heeft veel functies die interactie met het systeem mogelijk maken;. Enkele functies van deze module worden hieronder gegeven:
- move() \\ Een bestand verplaatsen
- copy() \\ Om een bestand te kopiëren
- rmtree() \\ Om alle bestanden in Directory en subdirectories te verwijderen
DATUM TIJD module wordt gebruikt om de huidige datum en tijd te vinden. Het wordt ook gebruikt om de weekdag en vele andere dingen te vinden. We kunnen onze taak op elk moment en elke datum plannen met behulp van deze module. In de volgende gevallen zullen we het gebruiken om alleen de huidige datum en tijd te vinden.
- datum Tijd.vandaag() \\ Om de huidige datum te vinden en Tijd
SELENIUM Module wordt gebruikt om het inlogproces van onze website te automatiseren. We kunnen automatisch inloggen op onze website en deze bijwerken met SELENIUM module. SELENIUM heeft veel ingebouwde functies die worden gebruikt om verschillende taken met betrekking tot browsers uit te voeren.
Systeemopdrachten uitvoeren in Python
We kunnen systeemopdrachten in python uitvoeren met behulp van OS en SUBPROCES modules. Hieronder volgt de syntaxis om de systeemopdracht in python uit te voeren:
os.systeem('commando')OF
subproces.bel('opdracht')Als we bijvoorbeeld alle bestanden en mappen in de huidige map willen weergeven, voeren we de volgende opdracht uit in pythonscript
os.systeem('ls')OF
subproces.bel ('ls')Hoe dingen te automatiseren met Python
Python kan worden gebruikt om vele soorten dagelijkse taken te automatiseren, wat tijdbesparend kan zijn. Hier zullen we enkele use-cases zien van het automatiseren van onze spullen. We zullen het rangschikken van bestanden in de downloadmap bespreken en een back-up maken van onze belangrijke bestanden.
Bestanden ordenen in de downloadmap
Wanneer we elk type bestand downloaden, gaat het standaard naar de downloadmap. Wanneer we een bestand moeten vinden, kan dit problemen veroorzaken, omdat er veel soorten bestanden in de downloadmap zijn gemengd. Nu gaan we een pythonscript schrijven om het systeem zo te automatiseren dat verschillende soorten bestanden (bijv.g. mp3, png, xls etc) gaat in verschillende mappen. De volledige code wordt hieronder gegeven:. Deze code controleert elk bestandstype één voor één en maakt vervolgens de bijbehorende map aan. Hierna zal het bestand naar gerelateerde mappen worden verplaatst (bijv.g... mp3-bestand gaat naar de map 'Audio').
importeer osimport Shutil
datum/tijd importeren
terwijl 1:
#huidig uur, minuut en seconde berekenen
vandaag = datetime.datum Tijd.vandaag()
vandaag = str(vandaag)
huidig_uur = vandaag[11:13]
huidige_minuut = vandaag[14:16]
huidige_sec = vandaag[17:19]
# ervoor zorgen dat het systeem de bestanden om 08:00 uur regelt
if current_hour == '08' en current_minute == '00' en current_sec == '00':
# veranderende map om te downloaden
os.chdir("pad_naar_Download_directory")
# alle bestandsnamen in een lijst opslaan
bestanden = os.lijstmap (os.getcwd())
voor bestandsnaam in bestanden:
# mappen negeren
zo niet os.pad.isdir(bestandsnaam):
# mp3-bestanden selecteren
als '.mp3' in bestandsnaam:
# 'Audio'-map maken als deze niet bestaat
zo niet os.pad.bestaat('Audio'):
os.mkdir('Audio')
# verplaatsen van bestand in 'Audio' directory
Shutil.move(bestandsnaam, 'Audio')
# mp4-bestanden selecteren
elif'.mp4' in bestandsnaam:
# maak een 'Video'-map aan als deze niet bestaat
zo niet os.pad.bestaat('Video'):
os.mkdir('Video')
# verplaatsen van bestand in 'Video' map
Shutil.verplaatsen(bestandsnaam, 'Video')
# pdf-bestanden selecteren
elif'.pdf' in bestandsnaam:
# maak een 'PDF'-map aan als deze niet bestaat
zo niet os.pad.bestaat('PDF'):
os.mkdir('PDF')
# verplaatsen van bestand in PDF-map
Shutil.verplaatsen(bestandsnaam, 'PDF')
# jpg- en png-bestanden selecteren
elif'.jpg' in bestandsnaam of '.png' in bestandsnaam:
# maak de map 'Afbeeldingen' aan als deze niet bestaat
zo niet os.pad.bestaat('Afbeeldingen'):
os.mkdir('Afbeeldingen')
# bewegend bestand in de map 'Afbeeldingen'
Shutil.move(bestandsnaam, 'Afbeeldingen')
# Excel-bestanden selecteren
elif'.xls' in bestandsnaam:
# 'Excel'-map maken als deze niet bestaat
zo niet os.pad.bestaat('Excel'):
os.mkdir('Excel')
# verplaatsen van bestand in 'Excel' map
Shutil.verplaatsen(bestandsnaam, 'Excel')
# selecteren '.ppt'-bestanden
elif'.ppt' in bestandsnaam:
# 'Power Point'-map maken als deze niet bestaat
zo niet os.pad.bestaat('Power Point'):
os.mkdir('Power Point')
# verplaatsen van bestand in 'Power Point' directory
Shutil.move(bestandsnaam, 'Power Point')
# selecteren '.docs-bestanden
elif'.docx' in bestandsnaam:
# maak een 'Word File'-map aan als deze niet bestaat
zo niet os.pad.bestaat('Word-bestand'):
os.mkdir('Word-bestand')
# verplaatsen van bestand in 'Word File' directory
Shutil.move(bestandsnaam, 'Word-bestand')
Allereerst zullen we de huidige tijd opslaan in verschillende variabelen, dan zullen we controleren of de tijd exact '08:00' is of niet. Het programma controleert elke dag de tijd en voert de code uit als de tijd '08:00' is, waarna de hoofdcode wordt uitgevoerd. In de hoofdcode veranderen we eerst onze directory in Download directory. Hier zullen we alle bestandsnamen opslaan in een lijst met de naam bestanden. Nu zullen we alle bestanden één voor één lezen en alleen bestanden eruit filteren. We zullen mappen negeren omdat we alleen bestanden gaan ordenen.
Nu zullen we elk bestandstype controleren of het mp3, mp4, jpg, pdf, xls, ppt en docx is of niet. Na het controleren van elk bestandstype zullen we controleren of de corresponderende map bestaat of niet exists. Als het bestand bijvoorbeeld mp3 is, controleren we of de map 'Audio' bestaat of niet. Als de corresponderende map niet bestaat, zullen we de map maken. Na het maken van de map zullen we ons bestand naar die map verplaatsen. Op deze manier kunnen alle bestanden naar hun corresponderende mappen worden verplaatst.
Deze code loopt continu en blijft controleren of de tijd '08:00' is of niet. Elke dag om '08:00' worden bestanden automatisch geordend. Deze code kan worden gepland om elke keer te worden uitgevoerd wanneer u uw systeem start met behulp van crontab. Crontab is hieronder uitgelegd:.
Maak automatisch een back-up van uw bestanden met behulp van systeemopdrachten
U hebt enkele belangrijke bestanden in een map die verband houdt met uw project en op de een of andere manier zijn sommige bestanden verwijderd. Wat wil je dan doen? In dit soort situaties is het maken van een back-up van uw bestanden belangrijk. Maar het maken van een back-up van uw bestanden is echt saai en tijdrovend. Deze taak kan automatisch worden uitgevoerd door een python-script te schrijven. Hieronder volgt de code om deze taak uit te voeren:. Deze code converteert elk bestand naar een zip-bestand en maakt vervolgens een back-upmap als deze niet bestaat. Hierna wordt het zipbestand verplaatst naar de back-upmap.
importeer osdatum/tijd importeren
terwijl 1:
# huidige tijd opslaan
vandaag = datumtijd.datum Tijd.vandaag()
vandaag = str (vandaag)
huidig_uur = vandaag[11:13]
huidige_minuut = vandaag[14:16]
huidige_sec = vandaag[17:19]
# zorg ervoor dat de code precies om '08:00' wordt uitgevoerd
if current_hour == '08' en current_minute == '00' en current_sec == '00':
# directory wijzigen naar documenten
os.chdir('pad_naar_documents_directory')
# alle bestandsnamen in een lijst opslaan
bestanden = os.lijstmap(os.getcwd())
# 'backup'-map maken als deze niet bestaat
zo niet os.pad.bestaat('back-up'):
os.mkdir('back-up')
voor bestand in bestanden:
# mappen negeren
zo niet os.pad.isdir(bestand):
# een bestandsnaam definiëren zonder spaties
originele_naam = bestand
bestand = bestand.splitsen(" ")
bestandsnaam = "".join(bestand)
# definiëren zip_filename
zip_file_name = bestandsnaam+".zip"
# controleren of het bestand al in de back-upmap bestaat of niet
zo niet os.pad.bestaat('backup/'+zip_bestandsnaam):
# bestandsnaam wijzigen zonder spaties
os.hernoemen(oorspronkelijke_naam, bestandsnaam)
# zip-bestand maken met systeemopdracht
os.system("zip "+zip_bestandsnaam+" "+bestandsnaam)
#zip-bestand verplaatsen in back-upmap met systeemopdracht
os.systeem ("mv "+zip_file_name+" back-up")
# bestandsnaam wijzigen in de oorspronkelijke naam
os.hernoemen(bestandsnaam, originele naam)
Allereerst zullen we de huidige tijd opslaan in variabelen en dan zullen we controleren of de tijd '08:00' is of niet. Als de tijd exact '08:00' is, wordt het hoofdscript uitgevoerd. In de hoofdcode gaan we allereerst naar de map waarin belangrijke bestanden aanwezig zijn. Vervolgens slaan we alle bestandsnamen op in een lijst. Nu zullen we een map 'backup' maken waarin we alle zip-bestanden zullen opslaan. Als deze map al bestaat, zullen we deze negeren. Nu zullen we elk bestand lezen en controleren of dit bestanden zijn of niet. Directory's worden genegeerd en bestanden worden in overweging genomen.
Om een zip-bestand van een bestand te maken met behulp van de systeemopdracht, zullen we eerst dit bestand hernoemen zonder spaties, aangezien een bestandsnaam met spaties als een ander bestand op elke spatie wordt beschouwd, wanneer we een systeemopdracht tegenkomen met behulp van python-script. De naam van het bestand wordt opgeslagen in een variabele 'original_filename' en het bestand wordt hernoemd zonder spaties. Nu zullen we de zip-bestandsnaam hetzelfde definiëren als de naam van het bestand met de extensie '.zip'.
Hierna zullen we het systeemcommando 'zip' gebruiken om dit bestand te zippen en dan zullen we dit zipbestand naar de map 'backup' verplaatsen met het systeemcommando 'mv'. Dan zullen we het bestand opnieuw hernoemen met de oorspronkelijke naam met spaties erin. Deze code wordt op het systeem gepland om elke keer automatisch te worden uitgevoerd wanneer u uw systeem start met crontab.
Automatiseer het uitvoeren van een script met Crontab
We hebben de bovenstaande automatiseringsscripts geschreven. Nu willen we deze scripts automatisch uitvoeren wanneer ons systeem opnieuw opstart. Om dit te doen, voegen we ons script toe in crontab. Voer de volgende stappen uit om een taak in crontab toe te voegen:
Typ eerst de volgende opdracht om het crontab-bestand te bewerken:
ubuntu@ubuntu:~$ crontab -e-e vlag betekent open crontab in bewerkingsmodus. Nadat we het crontab-bestand nu hebben geopend, zullen we onze taak in dit bestand toevoegen met de volgende opdracht aan het einde van het bestand:
@reboot python /pad/naar/python/scriptHierdoor wordt het Python-script automatisch uitgevoerd telkens wanneer u uw systeem opstart.
Conclusie
In dit artikel is het belang van automatisering in het praktische leven uitgelegd. Door dit artikel te lezen, krijgt u een idee hoe u uw eenvoudige taken die u elke dag doet, kunt automatiseren. Je moet zeker zoeken naar meer python-bibliotheken en -functies voor betere en gemakkelijke automatisering.