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


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


Answers



import time
time.sleep(5)   # delays for 5 seconds. You can Also Use Float Value.

다음은 무언가가 약 1 분에 한 번 실행되는 또 다른 예제입니다.

import time 
while True:
    print("This prints once a minute.")
    time.sleep(60)   # Delay for 1 minute (60 seconds).



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

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



자세한 내용을 보려면 https://web.archive.org/web/20090207081238/http://faqts.com/knowledge_base/view.phtml/aid/2609/fid/378을 읽어보십시오.

시간 모듈에서 절전 기능을 시도하십시오.

import time
time.sleep(60)

그리고 이것을 while 루프에 넣으면 명령문은 분만 실행됩니다 ... 명령을 내리는 데 걸리는 시간과 상관없이 미리 정의 된 간격으로 명령문을 실행할 수 있습니다 (분 또는 5 또는 60 분이 걸리지 않는 한). 또는 무엇을 설정했는지) 예를 들어, 1 분 간격으로 ping을 실행하고 싶습니다. 나는 단지 time.sleep(60) 이나 time.sleep(45) 사용해도 ping이 항상 같은 시간을 사용하지는 않습니다. 여기에 코드가 있습니다 :)

time.sleep(time.localtime(time.time())[5])

[5]time.localtime() 의 반환 값에서 초를 가져옵니다.

time.sleep 에 대한 좋은 점은 부동 소수점 숫자를 지원한다는 것입니다!

import time
time.sleep(0.1) 

http://python.org/doc/current/lib/module-time.html




졸린 생성기로 재미 좀.

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

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

상황은 가능한 한 규칙적으로 수행하기를 원하며 우리 코드의 모든 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)

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




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

단일 스레드에서는 sleep 함수를 제안합니다.

>>> from time import sleep

>>> sleep(4)

이것은 실제로 운영 체제에 의해 호출되는 스레드의 처리를 일시 중단하여 다른 스레드와 프로세스가 잠자기 중에 실행되도록합니다.

그 목적을 위해 또는 단순히 기능 실행을 지연시키기 위해 사용하십시오. 예 :

>>> def party_time():
...     print('hooray!')
... 
>>> sleep(3); party_time()
hooray!

"만세!" Enter를 누른 후 3 초 후에 인쇄됩니다.

여러 스레드 및 프로세스에서 sleep 을 사용하는 예제

다시 한번 말하면, sleep 은 스레드를 일시 중단합니다.

시연하려면 다음과 같은 스크립트를 작성하십시오. (대화식 Python 3.5 쉘에서 먼저 시도했지만, 하위 프로세스는 어떤 이유로 든 party_later 함수를 찾을 수 없습니다).

from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
from time import sleep, time

def party_later(kind='', n=''):
    sleep(3)
    return kind + n + ' party time!: ' + __name__

def main():
    with ProcessPoolExecutor() as proc_executor:
        with ThreadPoolExecutor() as thread_executor:
            start_time = time()
            proc_future1 = proc_executor.submit(party_later, kind='proc', n='1')
            proc_future2 = proc_executor.submit(party_later, kind='proc', n='2')
            thread_future1 = thread_executor.submit(party_later, kind='thread', n='1')
            thread_future2 = thread_executor.submit(party_later, kind='thread', n='2')
            for f in as_completed([
              proc_future1, proc_future2, thread_future1, thread_future2,]):
                print(f.result())
            end_time = time()
    print('total time to execute four 3-sec functions:', end_time - start_time)

if __name__ == '__main__':
    main()

이 스크립트의 출력 예 :

thread1 party time!: __main__
thread2 party time!: __main__
proc1 party time!: __mp_main__
proc2 party time!: __mp_main__
total time to execute four 3-sec functions: 3.4519670009613037

멀티 스레딩

Timer 스레딩 객체를 사용하여 별도의 스레드에서 나중에 호출 할 함수를 트리거 할 수 있습니다.

>>> from threading import Timer
>>> t = Timer(3, party_time, args=None, kwargs=None)
>>> t.start()
>>>
>>> hooray!

>>> 

빈 줄은 내 표준에 인쇄 된 기능을 나타내며 Enter 키 를 눌러 프롬프트에 있는지 확인합니다.

이 방법의 장점은 Timer 스레드가 대기하는 동안 함수가 실행되기 전에 Enter 키를 한 번 누르면 다른 작업을 수행 할 수 있다는 것입니다 (첫 번째 빈 프롬프트 표시 참조).

다중 처리 라이브러리에는 개별 객체가 없습니다. 하나를 만들 수는 있지만 이유가 있어도 존재하지 않을 수 있습니다. 하위 스레드는 완전히 새로운 하위 프로세스보다 단순한 타이머에 더 많은 의미가 있습니다.




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

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

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




시간 지연을 넣으려면 time 모듈을 가져와야합니다. 그리고이 모듈을 사용하면 다음과 같이 작성하면됩니다.

time.sleep(The amount of time)

예를 들어 컴퓨터가 다른 행을 실행하기 전에 1 초의 시간 지연을 넣으려면 다음을 입력해야합니다.

time.sleep(1)
print('Hello World!')

그게 다야 :)




좋은 질문.

다음과 같이하면됩니다.

from time import sleep

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

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




지연은 시간 라이브러리 , 특히 time.sleep () 함수를 사용하여 수행됩니다 ...

잠깐 기다리십시오.

from time import sleep
sleep(1)

이 작업은 다음을 수행하여 작동합니다.

from time import sleep

당신은 당신이 그것을 호출 할 수 있다는 것을 의미하는 시간 라이브러리 에서만 sleep 함수 를 추출합니다 :

sleep(seconds)

밖으로 타이핑하는 것보다 :

time.sleep()

어색하게 오래 입력해야합니다.

이 방법을 사용하면 시간 라이브러리 의 다른 기능에 액세스 할 수 없으므로 sleep이라는 변수를 사용할 수 없습니다. 하지만 시간이라는 변수를 만들 수 있습니다.

[library] import [function] (, [function2]) 를 사용하면 모듈의 특정 부분 만 있으면 편리합니다.

다음과 같이 똑같이 할 수 있습니다.

import time
time.sleep(1)

시간 을 입력하는 한 time.clock () 과 같은 시간 라이브러리 의 다른 기능에 액세스 할 수 있습니다 . 함수를 사용할 수는 있지만 변수 시간은 만들 수 없습니다.




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



파이 게임 사용하기

import pygame
pygame.init()
while True:
    pygame.time.wait(1000)
    print("This prints every second.")
    print("Please note that this method uses milliseconds.")