Időmodul Python 3-ban. Főbb módszerek, sablonok, példák

Szinte minden program időt használ. A Pythonban erre külön könyvtárat fejlesztettek ki – időkülönféle műveletek végrehajtására szolgál vele. Ahhoz, hogy működjön, először deklarálni kell a kód elején. Ez a sor erre szolgál:

import idő

Tekintsünk különböző lehetőségeket a modul helyes gyakorlati használatára. 

Az epocha óta eltelt másodpercek számának meghatározása

Ennek a feladatnak a végrehajtásához van egy funkció idő(), amely nem vesz paramétereket. A visszatérési értéke az, hogy hány másodperc telt el 1. január 1970-je óta. A Pythonban ezt az időt egy korszak kezdetének nevezik. Legalábbis a Unix család operációs rendszereiben.

Ami a Windowst illeti, a dátum ugyanaz, de problémák adódhatnak a dátum előtti negatív értékekkel. 

A használt időzóna UTC.

import idő

másodperc = idő.idő()

print ("Epocha óta eltelt másodpercek =", másodperc)

Ennek a funkciónak az a bonyolultsága, hogy nem pontosan a dátumot, hanem csak a másodpercek számát jeleníti meg. A mindenki számára ismert formátumra való konvertáláshoz pontos információkat kell használnia. Ehhez a funkciót használják time.ctime().

Dátum, idő visszaadása a szokásos formátumban

Az idő szokásos formátumban való visszaküldésére van egy módszer time.ctime(). A zárójelben a korszak kezdete óta eltelt másodpercek számát jelző változót vagy számot jelöljük. Ez a módszer minden dátum- és időjellemzőt visszaad, beleértve a dátumot, évet, órák számát, perceket, másodperceket és a hét napját.

Ez a függvény argumentumok nélkül is használható. Ebben az esetben visszaadja az aktuális dátumot, időt és így tovább.

Itt van egy kódrészlet, amely ezt demonstrálja.

import idő

print(time.ctime())

23. október 10. kedd, 18:23:2018

Az utolsó sor az, ami ki van nyomtatva arra a konzolra, ahol a Python interpreter fut. A metódus a kapott másodpercszámot automatikusan a felhasználó által ismert űrlapra formázza. Igaz, a fent leírt összes elemet ritkán használják. Általános szabály, hogy vagy csak az időt, vagy csak a mai dátumot kell megadnia. Ehhez egy külön funkciót használnak – strftime(). De mielőtt belegondolnánk, elemezni kell az osztályt time.struct_time.

osztályidő.struct_time

Ez az érvek olyan kategóriája, amely számos módszerrel elfogadható. Nincsenek választási lehetőségei. Ez egy elnevezett interfész tuple. Egyszerűen fogalmazva, ennek az osztálynak az elemei név és indexszám alapján is elérhetők.

A következő attribútumokból áll.Időmodul Python 3-ban. Főbb módszerek, sablonok, példák

Figyelem! Számos más programozási nyelvtől eltérően itt a hónap 1-től 12-ig terjedhet, és nem nullától 11-ig.

Adott formátum visszaadása

A funkció használata strftime () az évet, a hónapot, a napot, az órát, a percet, a másodpercet külön-külön megkaphatja, és visszaadhatja őket egy szöveges karakterláncba. Ezután a funkció segítségével kinyomtatható a felhasználónak nyomtatás () vagy más módon feldolgozva.

Argumentumként egy függvény bármely olyan változót vehet fel, amely a modul más függvényei által visszaadott értéket veszi fel. Például átteheti rá a helyi időt (erről később lesz szó), amiből kihúzza a szükséges adatokat.

Itt található a kódrészlet, ahol ezt csináljuk.

import idő

named_tuple = time.localtime() # get struct_time

time_string = time.strftime(«%m/%d/%Y, %H:%M:%S», elnevezett_sor)

print(time_string)

Ha ezt a kódot futtatja, megjelenik az aktuális dátum és idő. Az elemek formátuma és sorrendje módosítható. Ezek a következők:

  1. %Y az év.
  2. %m a hónap.
  3. %d – nap.
  4. %H – idő.
  5. %M – perc.
  6. %S – második.

Ennek megfelelően megteheti, hogy a kimenet kizárólag a hónap és a nap adatait tartalmazza. Ehhez egyszerűen nem kell parancsot adni az év megjelenítéséhez. Vagyis írja be a fenti képletbe argumentumként %m/%d, és kész. Vagy fordítva, %d/%m. 

Valójában a karakterlánc-literálok száma sokkal nagyobb. Itt van egy táblázat, ahol részletesen le vannak írva.Időmodul Python 3-ban. Főbb módszerek, sablonok, példák

Halasszon el egy szálat egy bizonyos számú másodpercre

Ehhez a funkciót használják aludni (). A programozási feladatok meglehetősen nagy blokkja kapcsolódik az idő múlásához. Néha el kell halasztani a következő lépést egy bizonyos időre. Például, ha olyan adatbázissal kell kapcsolatba lépnie, amelynek feldolgozása bizonyos ideig tart.

Argumentumként a metódus olyan értéket használ, amely azt fejezi ki, hogy hány másodpercben késlelteti az algoritmus következő lépését.

Például ebben a részletben a késleltetés 10 másodperc.

import idő

szünet = 10

print ("A program elindult...")

idő.alvás (szünet)

print(str(pause) + » másodperc telt el.»)

Ennek eredményeként ezt kapjuk:

A program elindult…

10 másodperc telt el.

Amint a kimenetből láthatjuk, a program először jelzi, hogy elindult. És tíz másodperc múlva azt írta, hogy ez az idő eltelt.

A funkció lehetővé teszi a szünet időtartamának ezredmásodpercben történő megadását. Ehhez a függvény argumentumának tört értékeit használjuk alvás. Például 0,1. Ez azt jelenti, hogy a késleltetés 100 ezredmásodperc lesz.

Szerezze be a helyi időt

A localtime() függvény segítségével a program lekéri, hogy egy adott időzónában hány másodperc telt el az epocha kezdete óta. 

Adjunk egy példakódot az érthetőség kedvéért.

import idő

eredmény = time.localtime(1575721830)

print ("eredmény:", eredmény)

print(«nгод:», eredmény.tm_év)

print(«tm_óra:», eredmény.tm_óra)

A struct_time értéket adja vissza UTC-ben az epocha óta eltelt másodpercek száma alapján

Ez a feladat a time.gmtime() használatával érhető el. módszer. Világosabb lesz, ha példát adunk.

import idő

eredmény = time.gmtime(1575721830)

print ("eredmény:", eredmény)

print(«nгод:», eredmény.tm_év)

print(«tm_óra:», eredmény.tm_óra)

Ha bekapcsolja ezt a műveletsort, akkor az időhöz, évhez és időzónához kapcsolódó elemek halmaza jelenik meg.

A korszak kezdete óta eltelt másodpercek számának visszaállítása a helyi időre való automatikus konvertálással

Ha ilyen feladattal szembesül, azt a módszerrel valósítjuk meg mktime (), amelyre szükség van struct_time. Ezt követően a funkció fordított műveletét hajtja végre helyi idő(). Vagyis a helyi időzóna szerinti időt az időzónához igazítva az epocha kezdete óta eltelt másodpercek számává alakítja át.

Az mktime() és localtime() függvények szorosan összefonódnak. Ez a kódrészlet egyértelműen ezt mutatja. Vessünk egy pillantást rá, hogy mélyebben megértsük, hogyan működik. 

import idő

másodperc = 1575721830

# a struct_time értéket adja vissza

t = idő.helyi idő (másodperc)

print(«t1: «, t)

# másodperceket ad vissza a struct_time értékből

s = idő.mktime(t)

print(«ns:», másodperc)

Látjuk, hogy a változó másodperc az epocha óta 1575721830 másodpercet rendeltek hozzá. Először a program megkapja a pontos dátumot, időt és egyéb paramétereket, ez alapján az értéket változóba helyezi t, majd annak tartalmát változóvá alakítja s.

Ezután egy új sort üt ki, és megjeleníti a másodpercek számát a konzolon. Ellenőrizheti, hogy ugyanaz a szám lesz-e, mint ami a másodperces változóhoz volt hozzárendelve.

Kimeneti dátum 9 számból, amelyek a struct_time-re utalnak

Tegyük fel, hogy van 9 számunk, amelyek az évet, hónapot, dátumot, a hét napját és számos más értéket jelölik, és ezeket egy karakterláncba kell egyesítenünk. Ehhez a funkciót használják asctime(). Elfogadja vagy kész struct_time, vagy bármely más 9 értékből álló sor, amely ugyanazt jelenti. Ezt követően egy karakterláncot ad vissza, amely dátum, idő és számos egyéb paraméter. 

Nagyon kényelmes ennek a módszernek a használata annak érdekében, hogy a felhasználó által megadott eltérő adatokat egyetlen változóba hozzuk..

Például lehet olyan program, ahol a felhasználó külön megadja a napot, a hónapot, az évet, a hét napját és az eseményre való regisztrációhoz kapcsolódó egyéb adatokat. Ezt követően a kapott információk bekerülnek az adatbázisba, majd kiadják egy másik személynek, aki azt kéri.

Idő és dátum lekérése Python karakterlánc alapján

Tegyük fel, hogy a felhasználó eltérő adatokat adott meg, és ezeket egy sorba kell egyesítenünk a személy által megadott formátumban, majd másolatot kell készítenünk egy másik változóba, és ott újra kell építeni egy szabványos formátumba. Ehhez a funkciót használják time.strptime().

Elvesz egy változót, amelyben ez az érték meg van adva, és visszaadja a már ismertet struct_time.

Az érthetőség kedvéért írunk egy ilyen programot.

import idő

time_string = «15. június 2019.»

eredmény = time.strptime(time_string, «%d %B, %Y»)

nyomtatás (eredmény)

Kitalálja, mi lesz a kimenet? Próbáljon kitalálni anélkül, hogy az alsó sort nézné. És akkor ellenőrizze a választ.

time.struct_time(tm_year=2019, tm_mon=6, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=166, tm_isdst=-1)

Egyszóval a dátumokkal és időpontokkal való munka Pythonban egyáltalán nem nehéz. Elég követni ezeket az utasításokat, és minden rendben lesz. A könyvtár használata idő a felhasználó rengeteg lehetőséget kap az idővel való munkavégzéshez, például:

  1. A program végrehajtásának felfüggesztése meghatározott időre.
  2. A korszak óta eltelt idő megjelenítése másodpercben. Ez az információ felhasználható az idő összegzésére vagy egyéb matematikai műveletek végrehajtására.
  3. Átalakítás kényelmes formátumba. Ezenkívül a programozó maga állíthatja be, hogy mely elemek és milyen sorrendben jelenjenek meg. 

Számos más lehetőség is létezik, de ma a legalapvetőbbeket elemeztük. Szinte minden olyan programban jól jönnek, amely valahogyan működik az idővel. Sok szerencsét.

Hagy egy Válaszol