[Python] 파이썬에서 어떻게 시간을 지연시킬 수 있습니까?


Answers

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

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

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




좋은 질문.

다음과 같이하면됩니다.

from time import sleep

# doing stuff
sleep(0.5) # sleeping half a second (sleep() uses seconds, but you can also use floats)
# doing stuff..

희망, 나는 도울 수 있었다.




졸린 생성기로 재미 좀.

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

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

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

부저 발생기

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

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'))