Varför automatiserar vi våra saker
Automatisering av våra saker kan göra vårt liv enklare. Det har många fördelar men några viktiga fördelar med automatisering ges nedan
- Den första och viktigaste fördelen med automatisering är att spara tid.
- Vi kan öka effektiviteten i vårt arbete (i.e. mer arbete på kortare tid)
- Noggrannheten för de schemalagda uppgifterna kan förbättras.
- Genom att automatisera saker minskar mänsklig interaktion med systemet så tråkiga saker automatiseras.
Automation med Python
Det finns många skriptspråk som bash, perl etc. för att automatisera manuella processer men python ger en möjlig miljö för att hantera våra behov. Det är lättare att automatisera saker med Python-programmeringsspråk än på något annat språk. Python har många automatiseringsmoduler (i.e. underprocess, shutil, os, pyautogui, selen etc.) som kan användas i automatisering. Vi kommer att se några användningsfall om hur vi automatiserar våra saker.
Automationsmoduler i Python
Här kommer vi att diskutera några automatiseringsmoduler i python som OS, SUBPROCESS, SHUTIL, DATETIME, SELENIUM etc. Dessa moduler används för att utföra systemkommandon och kan också användas för att manipulera systemkataloger. Dessa moduler har inbyggda funktioner som gör det lättare att utföra uppgifter på systemet.
OS och SUBPROCESS moduler används i nästan samma syfte. Några av de inbyggda funktionerna i dessa moduler ges nedan
- chdir () \\ För att ändra katalog
- mkdir () \\ Skapa ny katalog
- byt namn på () \\ För att byta namn på en fil
- listdir () \\ För att lista alla filer och kataloger
- getcwd () \\ Att känna till vår nuvarande katalog
- system () \\ Köra systemkommandon
- call () \\ Köra systemkommandon
Liknande SHUTIL modulen har många funktioner som gör det möjligt att interagera med systemet. Några funktioner i denna modul ges nedan
- flytta () \\ För att flytta en fil
- kopiera () \\ Kopiera en fil
- rmtree () \\ Ta bort alla filer i katalogen och underkatalogerna
DATUM TID modulen används för att hitta aktuellt datum och tid. Det används också för att hitta veckodag och många andra saker. Vi kan schemalägga vår uppgift när som helst och datum med den här modulen. I följande användningsfall använder vi den för att bara hitta aktuellt datum och tid.
- datum Tid.idag () \\ För att hitta aktuellt datum och Tid
SELEN Modulen används för att automatisera vår webbplatsloggning. Vi kan automatiskt logga in på vår webbplats och uppdatera den med SELEN modul. SELEN har många inbyggda funktioner som används för att utföra olika uppgifter relaterade till webbläsare.
Så här kör du systemkommandon i Python
Vi kan köra systemkommandon i python med OS och SUBPROCESS moduler. Följande är syntaxen för att köra systemkommandot i python
os.system ('kommando')ELLER
underprocess.ring ('kommando')Om vi till exempel vill lista alla filer och kataloger i den aktuella katalogen kommer vi att köra följande kommando i python-skript
os.system ('ls')ELLER
underprocess.ring ('ls')Hur man automatiserar saker med Python
Python kan användas för att automatisera många typer av dagliga uppgifter som kan spara tid. Här kommer vi att se några användningsfall för att automatisera våra saker. Vi diskuterar hur du ordnar filer i nedladdningskatalogen och håller en säkerhetskopia av våra viktiga filer.
Ordna filer i nedladdningskatalogen
När vi laddar ner någon typ av fil går den som standard till nedladdningskatalogen. När vi måste hitta någon fil kan det orsaka problem eftersom det finns många typer av filer blandade i nedladdningskatalogen. Nu ska vi skriva ett pythonscript för att automatisera systemet på ett sådant sätt att olika typer av filer (t.ex.g. mp3, png, xls etc) finns i olika kataloger. Komplett kod ges nedan. Den här koden kontrollerar varje filtyp en efter en och sedan skapas motsvarande katalog. Efter detta kommer den att flytta filen till relaterade kataloger (t.ex.g ... mp3-fil går till katalogen 'Ljud').
importera osimportera shutil
importera datatid
medan 1:
#beräknar aktuell timme, minut och sekund
idag = datetime.datum Tid.i dag()
idag = str (idag)
current_hour = idag [11:13]
current_minute = idag [14:16]
current_sec = idag [17:19]
# ser till att systemet ordnar filer kl. 08:00
if current_hour == '08' and current_minute == '00' and current_sec == '00':
# ändrar katalog för nedladdning
os.chdir ("path_to_Download_directory")
# sparar alla filnamn i en lista
filer = os.listdir (os.getcwd ())
för filnamn i filer:
# ignorerar kataloger
om inte os.väg.isdir (filnamn):
# välja mp3-filer
om '.mp3 'i filnamn:
# skapar 'Audio' -katalog om den inte finns
om inte os.väg.existerar ('Ljud'):
os.mkdir ('Ljud')
# flyttar fil i 'Audio' -katalogen
shutil.flytta (filnamn, 'Ljud')
# välja mp4-filer
elif '.mp4 'i filnamn:
# skapar "Video" -katalog om den inte finns
om inte os.väg.existerar ('Video'):
os.mkdir ('Video')
# flyttar fil i 'Video' -katalogen
shutil.flytta (filnamn, 'Video')
# välja pdf-filer
elif '.pdf 'i filnamn:
# skapar en 'PDF' -katalog om den inte finns
om inte os.väg.existerar ('PDF'):
os.mkdir ('PDF')
# flyttar fil i PDF-katalog
shutil.flytta (filnamn, 'PDF')
# att välja jpg- och png-filer
elif '.jpg 'i filnamn eller'.png 'i filnamn:
# skapar katalogen 'Bilder' om den inte finns
om inte os.väg.existerar ('Bilder'):
os.mkdir ('Bilder')
# flyttar fil i katalogen 'Bilder'
shutil.flytta (filnamn, 'Bilder')
# välja Excel-filer
elif '.xls 'i filnamn:
# skapar en Excel-katalog om den inte finns
om inte os.väg.existerar ('Excel'):
os.mkdir ('Excel')
# flyttar fil i "Excel" -katalogen
shutil.flytta (filnamn, 'Excel')
# att välja '.ppt-filer
elif '.ppt 'i filnamn:
# skapar 'Power Point' -katalog om den inte finns
om inte os.väg.existerar ('Power Point'):
os.mkdir ('Power Point')
# flyttar fil i katalogen 'Power Point'
shutil.flytta (filnamn, 'Power Point')
# att välja '.docs-filer
elif '.docx 'i filnamn:
# skapar 'Word File' -katalog om den inte finns
om inte os.väg.existerar ('Word File'):
os.mkdir ('Word File')
# flyttar fil i 'Word File' -katalogen
shutil.flytta (filnamn, 'Word File')
Först och främst kommer vi att spara den aktuella tiden i olika variabler och sedan kontrollera om tiden är exakt '08: 00 'eller inte. Programmet kontrollerar tiden varje dag och kör koden om tiden är '08: 00 ', då kommer huvudkoden att köras. I huvudkoden ändrar vi först och främst vår katalog till nedladdningskatalog. Här sparar vi alla filnamn i en lista med namnet filer. Nu läser vi alla filerna en efter en och filtrerar bara bort filer. Vi kommer att ignorera kataloger eftersom vi bara ska ordna filer.
Nu ska vi kontrollera varje filtyp om det är mp3, mp4, jpg, pdf, xls, ppt och docx eller inte. Efter att ha kontrollerat varje filtyp kommer vi att kontrollera om motsvarande katalog finns eller inte. Till exempel, om filen är mp3 kommer vi att kontrollera att "Audio" -katalogen finns eller inte. Om motsvarande katalog inte finns skapar vi katalogen. Efter att ha skapat katalog flyttar vi vår fil i den katalogen. På detta sätt kan alla filer flyttas till motsvarande kataloger.
Den här koden körs kontinuerligt och fortsätter att kontrollera om tiden är '08: 00 'eller inte. Varje dag vid '08: 00 'ordnas filer automatiskt. Den här koden kan planeras att köras varje gång du startar ditt system med crontab. Crontab har förklarats nedan.
Säkerhetskopiera dina filer automatiskt med systemkommandon
Du har några viktiga filer i en katalog som är relaterade till ditt projekt och på något sätt raderas vissa filer. Vad ska du då göra? I denna typ av situation är det viktigt att skapa en säkerhetskopia av dina filer. Men att skapa en säkerhetskopia av dina filer är väldigt tråkigt och tidskrävande. Denna uppgift kan göras automatiskt genom att skriva ett python-skript. Följande är koden för att utföra denna uppgift. Den här koden kommer att konvertera alla filer till zip-filer och sedan skapas en säkerhetskopia om den inte finns. Efter detta flyttas zip-filen i säkerhetskopian.
importera osimportera datatid
medan 1:
# sparar aktuell tid
idag = datetime.datum Tid.i dag()
idag = str (idag)
current_hour = idag [11:13]
current_minute = idag [14:16]
current_sec = idag [17:19]
# ser till att koden körs exakt '08: 00 '
if current_hour == '08' and current_minute == '00' and current_sec == '00':
# byter katalog till dokument
os.chdir ('path_to_documents_directory')
# sparar alla filnamn i en lista
filer = os.listdir (os.getcwd ())
# skapar 'backup' katalog om det inte finns
om inte os.väg.existerar ('backup'):
os.mkdir ('backup')
för fil i filer:
# ignorerar kataloger
om inte os.väg.isdir (fil):
# definierar ett filnamn utan mellanslag
original_name = fil
fil = fil.dela(" ")
filnamn = "".gå med (fil)
# definierar zip_filename
zip_file_name = filnamn + ".blixtlås"
# kontrollerar om filen redan finns i säkerhetskopian eller inte
om inte os.väg.existerar ('backup /' + zip_file_name):
# ändra filnamn utan mellanslag
os.byta namn (originalnamn, filnamn)
# skapar zip-fil med systemkommando
os.system ("zip" + zip_filnamn + "" + filnamn)
#moving zip-fil i säkerhetskopian med hjälp av systemkommandot
os.system ("mv" + zip_file_name + "backup")
# ändrar filnamn till dess ursprungliga namn
os.byta namn (filnamn, originalnamn)
Först och främst kommer vi att spara aktuell tid i variabler och sedan kontrollera om tiden är '08: 00 'eller inte. Om tiden är exakt '08: 00 'körs huvudskriptet. I huvudkoden går vi först och främst till katalogen där viktiga filer finns. Sedan sparar vi alla filnamnen i en lista. Nu skapar vi en katalog 'backup' där vi sparar alla zip-filer. Om den här katalogen redan finns kommer vi att ignorera detta. Nu kommer vi att läsa varje fil och kontrollera om det här är filer eller inte. Kataloger ignoreras och filer kommer att övervägas.
För att skapa en zip-fil av en fil med systemkommando kommer vi först och främst att byta namn på den här filen utan mellanslag eftersom ett filnamn med mellanslag anses vara en annan fil i varje utrymme, när vi stöter på ett systemkommando med python-skript. Filens namn sparas i variabeln 'original_filnamn' och filen byts namn utan mellanslag. Nu kommer vi att definiera zip-filnamnet samma som filnamnet med tillägget '.blixtlås'.
Efter detta kommer vi att använda systemkommandot 'zip' för att zipa den här filen och sedan flyttar vi den här zip-filen i 'backup' -katalogen med hjälp av systemkommandot 'mv'. Sedan byter vi namn på filen med dess ursprungliga namn med mellanslag i den. Den här koden kommer att schemaläggas att systemet ska köras automatiskt varje gång du startar ditt system med crontab.
Automatisera körning av ett skript med Crontab
Vi har skrivit automatiseringsskripten ovan. Nu vill vi köra dessa skript automatiskt när vårt system startar om. För att göra det lägger vi till vårt skript i crontab. För att lägga till uppgift i crontab gör du följande steg
Först och främst skriver du följande kommando för att redigera crontab-filen
ubuntu @ ubuntu: ~ $ crontab -e-e flagg betyder öppen crontab i redigeringsläge. Efter att ha öppnat crontab-filen kommer vi nu att lägga till vår uppgift i den här filen med följande kommando i slutet av filen
@reboot python / path / to / python / scriptDetta kör python-skript automatiskt varje gång du startar ditt system.
Slutsats
I den här artikeln har automatiseringens betydelse i det praktiska livet förklarats. Genom att läsa den här artikeln får du en uppfattning om hur du kan automatisera dina enkla uppgifter som du gör varje dag. Du bör definitivt söka efter fler pythonbibliotek och funktioner för bättre och enkel automatisering.