Piton

Feladatok ütemezése Python használatával

Feladatok ütemezése Python használatával
Néhány feladat az életünkben valóban időigényes, és unatkozunk ezeknek a feladatoknak az ismételt elvégzésében. Az unalmas feladatok elkerülése érdekében automatizáljuk ezeket a feladatokat a rendszerünkben. A Python számos automatizálási modullal rendelkezik, amelyek felhasználhatók a dolgaink automatizálására. Az alábbiakban megbeszéljük az automatizálás fontosságát és a dolgok automatizálását a python segítségével. Megbeszélünk néhány automatizálási modult a pythonban, amelyek segítenek automatizálni a dolgainkat. Ezután meglátjuk a Python segítségével végzett automatizálás néhány felhasználási esetét. A végén meglátjuk, hogyan tudjuk ütemezni a python szkriptünk automatikus indítását az indításkor.

Miért automatizáljuk a cuccainkat

Cuccaink automatizálása megkönnyítheti életünket. Számos előnye van, de az automatizálás néhány fontos előnyét az alábbiakban mutatjuk be

Automatizálás Python-nal

Sok olyan szkriptnyelv létezik, mint a bash, a perl stb. automatizálni a manuális folyamatokat, de a python megvalósítható környezetet biztosít igényeink kezeléséhez. A Python programozási nyelv segítségével könnyebb automatizálni a dolgokat, mint bármely más nyelven. A Python sok automatizálási modullal rendelkezik (azaz.e. alfolyamat, shutil, os, pyautogui, szelén stb.), amelyek felhasználhatók az automatizálásban. Látunk néhány felhasználási esetet arról, hogyan automatizáljuk a cuccainkat.

Automatizálási modulok a Pythonban

Itt néhány automatizálási modult fogunk megvitatni a python-ban OS, SUBPROCESS, SHUTIL, DATETIME, SELENIUM stb. Ezeket a modulokat a rendszerparancsok végrehajtására használják, és a rendszerkönyvtárak kezelésére is használhatók. Ezek a modulok beépített funkciókat tartalmaznak, amelyek megkönnyítik a rendszeren végzett feladatok végrehajtását.

OS és SUBPROCESS modulokat szinte ugyanarra a célra használják. Ezeknek a moduloknak a beépített funkcióit az alábbiakban adjuk meg

Hasonlóképpen SHUTIL modul számos funkcióval rendelkezik, amelyek lehetővé teszik a rendszerrel való interakciót. A modul néhány funkciója az alábbiakban található

DÁTUM IDŐ modul az aktuális dátum és idő megkeresésére szolgál. Azt is használják, hogy megtalálja a hét napját és sok minden mást. A modul segítségével bármikor ütemezhetjük feladatunkat. A következő felhasználási esetekben csak az aktuális dátum és idő megkeresésére fogjuk használni.

SZELÉN A modult a weboldal naplózásának automatizálására használják. Automatikusan bejelentkezhetünk weboldalunkra, és a rendszer használatával frissíthetjük SZELÉN modul. SZELÉN sok beépített funkcióval rendelkezik, amelyeket a böngészőkkel kapcsolatos különböző feladatok végrehajtására használnak.

A System parancsok végrehajtása a Pythonban

A rendszerparancsokat futtathatjuk a pythonban OS és SUBPROCESS modulok. A következő a szintaxis a rendszerparancs futtatásához a pythonban

os.rendszer ('parancs')

VAGY

alfolyamat.hívás ('parancs')

Például, ha fel akarjuk sorolni az összes fájlt és könyvtárat az aktuális könyvtárban, akkor a következő parancsot futtatjuk python szkriptben

os.rendszer ('ls')

VAGY

alfolyamat.hívás ('ls')

Hogyan automatizálhatjuk a dolgokat a Python segítségével

A Python sokféle napi feladat automatizálására használható, ami időt takaríthat meg. Itt láthatunk néhány felhasználási esetet a dolgaink automatizálásához. Megbeszéljük a fájlok rendezését a letöltési könyvtárban és a fontos fájljaink biztonsági másolatának megőrzését.

Fájlok rendezése a letöltési könyvtárban

Ha bármilyen típusú fájlt letöltünk, alapértelmezés szerint a Download könyvtárba kerül. Ha bármilyen fájlt meg kell találnunk, az problémát okozhat, mivel a Download könyvtárban sokféle fájl keveredik. Most írunk egy python szkriptet a rendszer automatizálására oly módon, hogy különböző típusú fájlok (pl.g. mp3, png, xls stb.) különböző könyvtárakba kerül. A teljes kódot alább adjuk meg. Ez a kód egyenként ellenőrzi az egyes fájltípusokat, majd létrehoz egy megfelelő könyvtárat. Ezután áthelyezi a fájlt a kapcsolódó könyvtárakba (pl.g… az mp3 fájl az 'Audio' könyvtárba kerül).

import os
import shutil
importálás ideje
míg 1:
# az aktuális óra, perc és másodperc kiszámítása
ma = dátumidő.dátum idő.Ma()
ma = str (ma)
current_hour = ma [11:13]
current_minute = ma [14:16]
current_sec = ma [17:19]
# annak biztosítása, hogy a rendszer 08: 00-kor rendezze a fájlokat
ha current_hour == '08' és current_minute == '00' és current_sec == '00':
# könyvtár letöltése a letöltéshez
os.chdir ("elérési út_töltési_könyvtár")
# az összes fájlnév mentése egy listába
fájlok = os.listdir (os.getcwd ()
fájlok fájlnevéhez:
# a könyvtárak figyelmen kívül hagyása
ha nem os.pálya.isdir (fájlnév):
# mp3 fájl kiválasztása
ha '.mp3 'fájlnévben:
# az 'Audio' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('Audio'):
os.mkdir ('Audio')
# fájl áthelyezése az 'Audio' könyvtárba
shutil.áthelyezés (fájlnév, 'Hang')
# mp4 fájl kiválasztása
elif '.mp4 'fájlnévben:
# a 'Video' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('Video'):
os.mkdir ('Videó')
# mozgó fájl a 'Video' könyvtárban
shutil.áthelyezés (fájlnév, 'Videó')
# pdf fájl kiválasztása
elif '.pdf 'fájlnévben:
# 'PDF' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('PDF'):
os.mkdir ('PDF')
# mozgó fájl a PDF könyvtárban
shutil.áthelyezés (fájlnév, 'PDF')
# jpg és png fájlok kiválasztása
elif '.jpg 'fájlnévben vagy'.png 'a fájlnévben:
# a 'Képek' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('Képek'):
os.mkdir ('Képek')
# mozgó fájl a 'Képek' könyvtárban
shutil.áthelyezés (fájlnév, "Képek")
# excel fájl kiválasztása
elif '.xls 'fájlnévben:
# az 'Excel' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('Excel'):
os.mkdir ('Excel')
# mozgó fájl az 'Excel' könyvtárban
shutil.áthelyezés (fájlnév, 'Excel')
# kiválasztás '.ppt 'fájlokat
elif '.ppt 'fájlnévben:
# 'Power Point' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('Power Point'):
os.mkdir ('Power Point')
# mozgó fájl a 'Power Point' könyvtárban
shutil.áthelyezés (fájlnév, 'Power Point')
# kiválasztás '.docs fájlok
elif '.docx 'a fájlnévben:
# 'Word File' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('Word fájl'):
os.mkdir ('Word fájl')
# mozgó fájl a 'Word File' könyvtárban
shutil.áthelyezés (fájlnév, 'Word File')

Először mentjük az aktuális időt különböző változókban, majd ellenőrizzük, hogy az idő pontos-e '08: 00 'vagy sem. A program minden nap ellenőrzi az időt és futtatja a kódot, ha az idő '08: 00 ', akkor a főkód futni fog. A főkódban először is könyvtárunkat Letöltés könyvtárra változtatjuk. Itt minden fájlnevet egy fájl nevű listába mentünk. Most minden fájlt egyesével el fogunk olvasni, és csak a fájlokat szűrjük ki. A könyvtárakat figyelmen kívül hagyjuk, mivel csak fájlokat fogunk rendezni.

Most ellenőrizni fogjuk az egyes fájltípusokat, hogy mp3, mp4, jpg, pdf, xls, ppt és docx-e vagy sem. Az egyes fájltípusok ellenőrzése után ellenőrizzük, hogy létezik-e megfelelő könyvtár. Például, ha a fájl mp3, akkor ellenőrizni fogjuk, hogy az 'Audio' könyvtár létezik-e vagy sem. Ha a megfelelő könyvtár nem létezik, létrehozzuk a könyvtárat. Könyvtár létrehozása után áthelyezzük a fájlunkat abban a könyvtárban. Ily módon az összes fájl áthelyezhető a megfelelő könyvtárakba.

Ez a kód folyamatosan fut, és folyamatosan ellenőrzi, hogy az idő '08: 00 '-e vagy sem. A fájlok rendezése minden nap '08: 00-kor történik. Ezt a kódot úgy lehet ütemezni, hogy minden alkalommal fusson, amikor a rendszert a crontab használatával indítja. A Crontab-ot az alábbiakban ismertetjük.

Automatikus biztonsági mentés a fájlokról a rendszer parancsai segítségével

Van néhány fontos fájl a projekthez kapcsolódó könyvtárban, és valahogyan néhány fájl törlődik. Akkor mit fogsz csinálni? Ilyen helyzetben fontos a fájlok biztonsági másolatának létrehozása. De a fájlok biztonsági másolatának létrehozása nagyon unalmas és időigényes feladat. Ez a feladat automatikusan elvégezhető egy python szkript írásával. A következő a feladat végrehajtásához szükséges kód. Ez a kód minden fájlt zip fájlokká konvertál, majd biztonsági másolat könyvtárat hoz létre, ha nem létezik. Ezt követően a zip fájl a biztonsági mentési könyvtárba kerül.

import os
importálás ideje
míg 1:
# aktuális idő megtakarítása
ma = dátumidő.dátum idő.Ma()
ma = str (ma)
current_hour = ma [11:13]
current_minute = ma [14:16]
current_sec = ma [17:19]
# megbizonyosodni arról, hogy a kód pontosan '08: 00 'futni fog
ha current_hour == '08' és current_minute == '00' és current_sec == '00':
# könyvtár megváltoztatása dokumentumokká
os.chdir ('elérési út_dokumentumok_könyvtár')
# az összes fájlnév mentése egy listába
fájlok = os.listdir (os.getcwd ()
# 'backup' könyvtár létrehozása, ha nem létezik
ha nem os.pálya.létezik ('backup'):
os.mkdir ('biztonsági másolat')
fájlban lévő fájlokhoz:
# a könyvtárak figyelmen kívül hagyása
ha nem os.pálya.isdir (fájl):
# fájlnév meghatározása szóköz nélkül
eredeti_név = fájl
fájl = fájl.hasított(" ")
file_name = "".csatlakozás (fájl)
# defining zip_filename
zip_fájl_név = fájlnév + ".postai irányítószám"
# annak ellenőrzése, hogy a fájl már létezik-e a biztonsági mentési könyvtárban, vagy sem
ha nem os.pálya.létezik ('backup /' + zip_file_name):
# fájlnév megváltoztatása szóköz nélkül
os.átnevezés (eredeti_név, fájlnév)
# zip fájl létrehozása a rendszer parancsával
os.rendszer ("zip" + zip_fájl_neve + "" + fájlnév)
#mip zip fájl mentése a könyvtárban a rendszer parancsával
os.rendszer ("mv" + zip_file_name + "backup")
# a fájlnév megváltoztatása az eredeti nevére
os.átnevezés (fájlnév, eredeti_név)

Először az aktuális időt spóroljuk meg a változókban, majd ellenőrizzük, hogy az idő '08: 00 '-e vagy sem. Ha az idő pontos '08: 00 ', akkor a fő szkript futni fog. A főkódban mindenekelőtt abba a könyvtárba megyünk, amelyben a fontos fájlok találhatók. Ezután az összes fájlnevet listába menti. Most létrehozunk egy 'backup' könyvtárat, amelybe az összes zip fájlt elmentjük. Ha ez a könyvtár már létezik, akkor ezt figyelmen kívül hagyjuk. Most minden fájlt el fogunk olvasni, és ellenőrizzük, hogy ezek fájlok-e vagy sem. A könyvtárakat figyelmen kívül hagyják, és a fájlokat figyelembe veszik.

Egy fájl zip fájljának létrehozásához a rendszer parancs segítségével először is ezt a fájlt szóközök nélkül átnevezzük, mivel a szóközökkel rendelkező fájlnév minden téren más fájlnak számít, amikor egy Python szkriptet használó rendszerparancsba futtatjuk. A fájl nevét az 'original_filename' változóba menti, és a fájlt szóköz nélkül átnevezik. Most meg fogjuk határozni a zip fájl nevét, mint a fájl neve kiterjesztéssel '.postai irányítószám'.

Ezután a 'zip' parancsot fogjuk használni a fájl tömörítéséhez, majd ezt a zip fájlt a 'backup' könyvtárba helyezzük át az 'mv' parancs segítségével. Ezután újra átnevezzük a fájlt eredeti nevével, szóközökkel. Ezt a kódot a rendszer ütemezi, hogy minden alkalommal automatikusan fusson, amikor a rendszert a crontab használatával indítja el.

Automatizálja a szkript futtatását a Crontab segítségével

Az automatizálási szkripteket fentebb írtuk. Most ezeket a szkripteket szeretnénk automatikusan futtatni, amikor a rendszer újraindul. Ehhez hozzáadjuk a szkriptünket a crontab-be. A crontabban való feladat hozzáadásához tegye a következőket

Először írja be a következő parancsot a crontab fájl szerkesztéséhez

ubuntu @ ubuntu: ~ $ crontab -e

-Az e flag jelentése nyitott crontab szerkesztési módban. A crontab fájl megnyitása után hozzáadjuk a feladatunkat ehhez a fájlhoz a fájl végén található következő paranccsal

@reboot python / path / to / python / script

Ez automatikusan elindítja a python parancsfájlt, amikor elindítja a rendszert.

Következtetés

Ebben a cikkben kifejtették az automatizálás fontosságát a gyakorlati életben. A cikk elolvasásával ötletet kap arról, hogy miként automatizálhatja a mindennapi egyszerű feladatait. A jobb és egyszerűbb automatizálás érdekében feltétlenül keressen további python könyvtárakat és funkciókat.

Sid Meier Civilization VI letöltése és lejátszása Linuxon
Bevezetés a játékba A Civilization 6 egy modern felvétel a Age of Empires játékok sorozatában bevezetett klasszikus koncepcióra. Az ötlet meglehetősen...
A Doom telepítése és lejátszása Linuxon
Bevezetés a Doom-ba A Doom sorozat a 90-es években keletkezett az eredeti Doom megjelenése után. Azonnali sláger volt, és ettől kezdve a játéksorozat ...
Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...