1. Mis on Pythoni time moodul?
1.1 time mooduli ülevaade
Pythoni time
moodul on üks standardteekidest, mis võimaldab programmis käsitleda aega ja kuupäevi.
See moodul põhineb süsteemi kellal ning võimaldab hankida sekundite arvu, mis on möödunud epohhist (1. jaanuar 1970, 00:00:00 UTC). Seda kasutatakse sageli logifailide ajatemplite lisamiseks või programmi jõudluse mõõtmiseks.
time-mooduli peamine eelis on selle lihtsus. Keerulist seadistust pole vaja, alustamine on väga lihtne, mistõttu sobib see hästi põhiliseks aja mõõtmiseks ja haldamiseks.
1.2 Peamised funktsioonid
time
moodul sisaldab erinevaid ajaga seotud funktsioone. Olulisemad neist on:
time.time()
: Tagastab epohhist möödunud sekundite arvu ujukomaarvuna.time.sleep(secs)
: Peatab programmi käivituse määratud sekunditeks. Kasulik, kui soovite protsessi ajutiselt pausile panna.time.ctime()
: Teisendab ajatemplid inimesele loetavaks kujuks.
Nende funktsioonide abil saab lihtsalt lahendada nii lihtsamaid kui ka keerulisemaid ajaga seotud ülesandeid.

2. Kuidas saada kätte praegune aeg
2.1 Praeguse aja hankimine time.time()
abil
time.time()
funktsioon tagastab sekundi täpsusega epohhist möödunud aja. See on kõige elementaarsem viis praeguse aja saamiseks. Näide:
import time
current_time = time.time()
print(current_time)
Ülaltoodud kood väljastab praeguse epohhiaja (sekundid ujukomaarvuna). Epohhiajaga arvutamine on programmide sees mugav, kuid inimesele see väärtus pole kuigi intuitiivne. Seetõttu kasutatakse järgmiseks näidatud strftime()
funktsiooni, et aega loetavamaks muuta.
2.2 Kuupäeva ja kellaaja vormindamine strftime()
abil
time.strftime()
võimaldab teisendada epohhiaega inimesele arusaadavasse kuupäeva ja kellaaja formaati. See on eriti kasulik logide või aegade kuvamisel. Allolev näide väljastab praeguse aja kujul “aasta-kuu-päev tund:minut:sekund”.
import time
formatted_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(formatted_time)
Näites teisendatakse time.localtime()
abil ajatempel kohalikku aega ning strftime()
abil vormindatakse kuupäev. %Y
näitab aastat, %m
kuud, %d
päeva. Nii saab ajainfot lihtsalt inimesele loetavaks muuta.
3. Kuidas mõõta protsessi kestust
3.1 Lihtne kestuse mõõtmine time.time()
abil
Kõige lihtsam viis protsessi kestust mõõta on salvestada algus- ja lõpuaeg ning nende vahe arvutada:
import time
start_time = time.time()
# Näide: tsükkel
for i in range(1000000):
pass
end_time = time.time()
print(f"Töötlusaeg: {end_time - start_time} sekundit")
Selles näites mõõdetakse tsükli täitmiseks kuluvat aega. time.time()
sobib lihtsamate mõõtmiste jaoks, kuid väga kõrget täpsust see ei taga.
3.2 Täpsem mõõtmine perf_counter()
abil
Kui on vaja suuremat täpsust, tuleks kasutada perf_counter()
-it, mis võimaldab väga täpset ajamõõtmist:
import time
start_time = time.perf_counter()
# Täpne mõõtmine
for i in range(1000000):
pass
end_time = time.perf_counter()
print(f"Täpne töötlusaeg: {end_time - start_time} sekundit")
perf_counter()
pakub nanosekundilise täpsusega aega ning sobib ajakriitilistele või optimeerimist vajavatele rakendustele.
3.3 Jõudlustestid timeit
mooduliga
Kui soovite teha jõudlusteste, on abiks timeit
moodul, mis mõõdab valitud koodi korduvat täitmist ja arvutab keskmise aja:
import timeit
print(timeit.timeit('"-".join(str(n) for n in range(100))', number=10000))
Antud kood ühendab nimekirja elemente 10 000 korda ning tagastab keskmise kestuse. timeit
aitab saada võimalikult täpseid ja korduvaid mõõtmistulemusi.

4. Kuupäeva ja kellaaja käsitlemine: võrdlus datetime-mooduliga
4.1 Praeguse aja hankimine datetime.now()
abil
Lisaks time
moodulile on Pythoni datetime
moodul väga oluline, eriti kui on vaja teha keerukamaid kuupäeva- ja ajatehteid.
from datetime import datetime
now = datetime.now()
print(now)
See kood tagastab praeguse kuupäeva ja kellaaja datetime
objektina. datetime
mooduliga saab hõlpsalt teha ajatehteid ja hallata ajavööndeid.
4.2 Millal kasutada time vs datetime moodulit?
time
moodul sobib lihtsateks ja täpseteks ajamõõtmisteks, kuid keerukamate kuupäevade ja aegade käsitlemiseks on parem datetime
moodul. Näiteks kuupäevadega seotud rakendustes või arvutustes on datetime
mugavam ja paindlikum.
5. Praktilised näited: time-mooduli kasutamine
5.1 Kuidas lisada ajatempel logisse
Sageli on vaja jälgida sündmusi logifailis, lisades neile ajatempel. time.ctime()
võimaldab lihtsalt saada inimesele loetavat kellaega logikirjetele lisamiseks.
import time
log_entry = f"{time.ctime()} - Veateade"
print(log_entry)
Nii saab time.ctime()
abil logisse lisada arusaadavat kellaega.
5.2 Koodi jõudluse optimeerimine
Jõudluse optimeerimisel saab aja mõõtmise abil tuvastada kõige aeganõudvamad kohad koodis. Kasutades time
või timeit
moodulit, saab mõõta kogu programmi või konkreetse funktsiooni täitmisaega ja seejärel optimeerida.
6. Kokkuvõte
Pythoni time
moodul võimaldab väga lihtsalt teha põhilisi ajatehteid ning sobib mitmesugustesse programmeerimisolukordadesse. See pakub nii lihtsaid mõõtmisi kui ka täiustatud funktsioone nagu perf_counter()
ja timeit
.
Eriti jõudluse optimeerimisel ja ajakriitilistes ülesannetes on time
moodul lihtne ja võimas tööriist. Kui on vaja teha keerulisemaid kuupäeva- ja ajatehteid, tasub kasutada koos datetime
mooduliga. Kui mõistate erinevate moodulite tugevusi, saate oma Pythoni koodi muuta nii tõhusaks kui ka praktiliseks.