python def for - 파이썬에서 어떻게 시간을 지연시킬 수 있습니까?




6 Answers

time 모듈에서 sleep() 함수를 사용할 수 있습니다. 보조 초 해상도의 경우 float 인수를 사용할 수 있습니다.

from time import sleep
sleep(0.1) # Time in seconds.
time sleep delay

파이썬 스크립트에 시간 지연을 두는 법을 알고 싶습니다.




졸린 generator 로 재미 좀.

문제는 시간 지연에 관한 것입니다. 고정 시간 일 수도 있지만 경우에 따라 지난 번부터 측정 된 지연이 필요할 수도 있습니다. 가능한 해결책은 다음과 같습니다.

마지막으로 측정 한 지연 (정기적으로 깨우기)

상황은 가능한 한 규칙적으로 수행하기를 원하며 우리 코드의 모든 last_time , next_time 에 신경 쓰고 싶지 않을 수 있습니다.

부저 발생기

다음 코드 ( sleepy.py )는 buzzergen 생성기를 정의합니다.

import time
from itertools import count

def buzzergen(period):
    nexttime = time.time() + period
    for i in count():
        now = time.time()
        tosleep = nexttime - now
        if tosleep > 0:
            time.sleep(tosleep)
            nexttime += period
        else:
            nexttime = now + period
        yield i, nexttime

정기적 인 buzzergen 호출하기

from sleepy import buzzergen
import time
buzzer = buzzergen(3) # Planning to wake up each 3 seconds
print time.time()
buzzer.next()
print time.time()
time.sleep(2)
buzzer.next()
print time.time()
time.sleep(5) # Sleeping a bit longer than usually
buzzer.next()
print time.time()
buzzer.next()
print time.time()

그리고 그것을 실행하는 우리는 본다 :

1400102636.46
1400102639.46
1400102642.46
1400102647.47
1400102650.47

루프에서 직접 사용할 수도 있습니다.

import random
for ring in buzzergen(3):
    print "now", time.time()
    print "ring", ring
    time.sleep(random.choice([0, 2, 4, 6]))

그리고 그것을 실행하면 우리는 볼 수 있습니다 :

now 1400102751.46
ring (0, 1400102754.461676)
now 1400102754.46
ring (1, 1400102757.461676)
now 1400102757.46
ring (2, 1400102760.461676)
now 1400102760.46
ring (3, 1400102763.461676)
now 1400102766.47
ring (4, 1400102769.47115)
now 1400102769.47
ring (5, 1400102772.47115)
now 1400102772.47
ring (6, 1400102775.47115)
now 1400102775.47
ring (7, 1400102778.47115)

우리가 보는 바와 같이,이 버저는 너무 딱딱하지 않아서 우리가 잠들고 일정한 일정에서 벗어나더라도 규칙적인 졸린 간격을 따라갈 수 있습니다.




Python 표준 라이브러리의 tkinter 라이브러리는 가져올 수있는 대화 형 도구입니다. 기본적으로 코드로 조작하는 창으로 나타나는 버튼과 상자, 팝업 및 물건을 만들 수 있습니다.

tkinter를 사용한다면, TIME.SLEEP() 은 프로그램을 TIME.SLEEP() 사용하지 마십시오. 이것은 나에게 일어났다. 대신 root.after() 사용하고 밀리 초 단위로 값을 여러 초 동안 root.after() . 예를 들어, time.sleep(1) 은 tkinter의 root.after(1000) 와 같습니다.

그렇지 않으면 많은 대답이 지적한 time.sleep() , 이것이 갈 길입니다.




3 가지 방법을 사용하여 지연을 구현할 수 있습니다.

가장 쉬운 방법부터 시작해 보겠습니다.

import time
time.sleep(5) # Delay for 5 seconds.

두 번째 지연 방법은 암시 적 대기 메서드를 사용하는 것입니다.

 driver.implicitly_wait(5)

세 번째 방법은 특정 작업이 완료 될 때까지 또는 요소가 발견 될 때까지 기다려야 할 때 더욱 유용합니다.

self.wait.until(EC.presence_of_element_located((By.ID, 'UserName'))



Python에서 시간을 지연시키는 가장 좋은 방법은 time 라이브러리를 사용하는 time 입니다. 이렇게 :

import time
time.sleep(10)

지연시킬 시간 (초)을 10으로 바꾸십시오. '10 .1 ','5.07 '등과 같은 형식을 사용할 수 있습니다.

Tkinter와 함께 사용하는 것은 권장하지 않습니다.




이것은 시간 지연의 쉬운 예입니다.

import time

def delay(period='5'):
    # If the user enters nothing, It'll wait 5 seconds
    try:
        #If the user not enters a int, I'll just return ''
        time.sleep(period)
    except:
        return ''

또 다른, Tkinter에서 :

import tkinter

def tick():
    pass

root=Tk()
delay=100 # time in milliseconds
root.after(delay,tick)
root.mainloop()



Related