Python

Brug af Python-søvn () -metoden

Brug af Python-søvn () -metoden
Hvis du vil indstille en tidsforsinkelse, før du udfører et script, kan du bruge søvn() funktion, der er indbygget i Python. Denne metode findes under tid modul. Generelt bruges sleep () -funktionen til at stoppe udførelsen af ​​programmet i den givne tidsperiode (i sekunder). Hvis du f.eks. Downloader en fil fra et sted ved hjælp af et script, der muligvis kræver en bestemt periode, kan du bruge metoden sleep () til at informere brugeren om at vente. Denne tutorial viser dig nogle af de forskellige anvendelser af sleep () -funktionen i Python 3.

Syntaks

Følgende eksempel viser den enkle brug af sleep () -funktionen til at standse programudførelsen midt i scriptet i en bestemt periode. Scriptet læser og udskriver den aktuelle systemtidsværdi, venter i 5 sekunder under sleep () -funktionen og læser igen og udskriver den aktuelle systemtid. Her bruges funktionerne localtime () og time () til at læse den aktuelle systemdato og -tid, og strftime () -funktionen bruges til at udskrive den formaterede tid.

#!/ usr / bin / env python3
# Importer tidsmodul
importtid
 
# Læs den aktuelle dato og tid
nu = tid.localtime (tid.tid())
 
# Udskriv starttidspunkt
udskriv (tid.strftime ("Starttiden:% H:% M:% S", nu))
 
# Vent i 5 sekunder
udskrive ("Venter i 5 sekunder ...")
tid.sove (5)
 
# Læs den aktuelle dato og tid
nu = tid.localtime (tid.tid())
 
# Udskriv sluttid
udskriv (tid.strftime ("Sluttiden:% H:% M:% S", nu))

Produktion

Følgende output vises efter kørsel af ovenstående script. Outputtet viser, at varigheden mellem starttid og sluttid er 5 sekunder ved hjælp af sleep () -funktionen.

Eksempel 2: Opret en tidstæller ved hjælp af sleep ()

Følgende eksempel viser, hvordan man nemt opretter en tidstæller via sleep () -metoden. Scriptet tager et antal sekunder at initialisere tidstællervariablen.  Tre moduler importeres her. Det dato tid modulet importeres for at indstille den indledende tidsværdi. Det tid modulet importeres for at bruge funktionen sleep (). Det sys modulet bruges til at afslutte den uendelige while-loop, når tællerværdien er lig med tællertallet. Fire variabler bruges i scriptet til at initialisere time-, minut-, sekund- og tællervariabler for at indstille starttidspunktet for tidstælleren. Her venter sleep () -funktionen et sekund i hver iteration af sløjfen og udskriver derefter tidstællerværdien.

#!/ usr / bin / env python3
# Importer datetime-modul
importer datatid
# Importer tidsmodul
importtid
# Importer sys-modul
importer sys
 
# Tag antallet af sekunder at tælle
timer = int (input ("Indstil tællerværdien i sekunder:"))
# Initialiser tid og tællerværdi til 0
time = minut = sekund = tæller = 0
 
# Udskriv starttimerværdien
udskriv (datetid.tid (time, minut, sekund))
prøve:
# Definer uendelig løkke
mens det er sandt:
 
# Forsink i 1 sekund
tid.sove (1)
# Forøg tæller med 1
tæller = tæller + 1
# Forøg sekund med 1
sekund = sekund + 1
# Udskriv den aktuelle timerværdi
udskriv (datetid.tid (time, minut, sekund))
# Indstil den anden værdi til 0, når værdien er mere end 60
hvis andet> 60:
minut = minut + 1
sekund = 0
# Indstil minutværdien til 0, når værdien er mere end 60
hvis minut> 60:
time = time + 1
minut = 0
# Afslut sløjfen, når tællerværdien er lig med timerværdien
hvis tæller == timer:
print ("Tid afsluttet.")
pause
undtagen KeyboardInterrupt:
# Afslut scriptet, når der trykkes på Ctrl + C
sys.Afslut

Produktion

Følgende output vises efter kørsel af scriptet.

Eksempel 3: Udskriv hver karakter af en streng med en forsinkelse

Hvis du vil vise hvert tegn i en tekst med en vis forsinkelse i output, kan du anvende sleep () -funktionen i scriptet. En lignende opgave vises i det følgende script. Her tages en tekstværdi som input. Hvert tegn i teksten gentages ved hjælp af sløjfen, og funktionen venter på 0.4 sekunder før udskrivning.

#!/ usr / bin / env python3
# importtidsmodul
importtid
 
# Tag en strengværdi
name = input ("Indtast dit navn:")
# Iterer sløjfen for at læse hvert tegn fra strengen
for val i navn:
# Udskriv hvert tegn uden ny linje
print (val, end = ")
# Vent på 0.4 sekunder efter udskrivning af hvert tegn
tid.sove (0.4)

Produktion

Kør scriptet. Du vil forstå output korrekt efter at have kørt scriptet.

Eksempel 4: Brug af søvn () i multitrådet script

Følgende eksempel viser brugen af ​​sleep () -funktionen i Python-scriptet med flere tråde. Her importeres to moduler: tidsmodulet til brug af sleep () -funktionen og threading-modulet til oprettelse af flere tråde. To brugerdefinerede funktioner bruges i scriptet. En tekstbesked udskrives og venter på 0.5 sekunder tre gange inde i for-løkken, når den første tråd starter. En tekstbesked udskrives og venter på 1 sekund i fire gange inde i for-løkken, når den anden tråd starter.

#!/ usr / bin / env python3
# importtidsmodul
importtid
# Importer trådmodul
importer trådning
 
# Definer den første trådfunktion
def prn_message_1 ():
for n i rækkevidde (3):
print ("Udskriv tråd 1 besked")
tid.sove (0.5)
 
# Definer den anden trådfunktion
def prn_message_2 ():
for n i rækkevidde (4):
print ("Udskriv tråd 2-besked")
tid.sove (1)
 
# Indstil den første trådfunktion
tråd1 = trådning.Tråd (mål = prn_message_1)
# Start den første trådfunktion
tråd1.Start()
# Indstil den anden trådfunktion
tråd2 = trådning.Tråd (mål = prn_message_2)
# Start den anden trådfunktion
tråd2.Start()

Produktion

Følgende output vises efter kørsel af scriptet. Efter start af den første tråd begynder den anden tråd og venter, indtil den er færdig i 1 sekund. I løbet af denne tid er sløjfen af ​​den første tråd afsluttet de sidste to iterationer. De sidste tre udgange er dukket op for loop af den anden tråd.

Konklusion

Sleep () -funktionen bruges til at løse mange forskellige typer tidsrelaterede problemer i Python. Forskellige anvendelser af denne metode forklares ved hjælp af meget enkle eksempler her for at hjælpe læseren med at kende funktionerne i dette værktøj. Jeg tror, ​​at du eller enhver anden Python-bruger vil være i stand til at bruge denne metode ordentligt efter at have praktiseret eksemplerne inkluderet i denne vejledning.

Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...
Nyttige værktøjer til Linux-spillere
Hvis du kan lide at spille spil på Linux, er chancerne for, at du måske har brugt apps og hjælpeprogrammer som Wine, Lutris og OBS Studio for at forbe...