Pytonorm

Schemalägga uppgifter med Python

Schemalägga uppgifter med Python
Vissa uppgifter i vårt liv är verkligen tidskrävande och vi blir uttråkade att göra dessa uppgifter upprepade gånger. För att undvika dessa tråkiga uppgifter automatiserar vi dessa uppgifter i vårt system. Python har många automatiseringsmoduler som kan användas för att automatisera våra saker. Nedan kommer vi att diskutera vikten av automatisering och hur man automatiserar våra saker med hjälp av python. Vi kommer också att diskutera några automatiseringsmoduler i python som hjälper till att automatisera våra grejer. Då ser vi några användningsfall av automatisering med python. I slutet ser vi hur vi kan schemalägga att vårt python-skript ska köras automatiskt vid uppstart.

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

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

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

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.

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 os
importera 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 os
importera 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 / script

Detta 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.

Mus Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Hur man använder Xdotool för att stimulera musklick och tangenttryckningar i Linux
Xdotool är ett ledigt verktyg för öppen källkod för simulering av musklick och tangenttryckningar. Den här artikeln kommer att täcka en kort guide om ...
Mus Topp 5 Ergonomiska datormusprodukter för Linux
Topp 5 Ergonomiska datormusprodukter för Linux
Ger långvarig datoranvändning smärta i handleden eller fingrarna? Lider du av styva leder och måste ständigt skaka hand? Känner du en brännande smärta...
Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...