2011-05-02 5 views
6

저는 파이썬 프로그래밍에 익숙하며 우분투를 처음 사용합니다. 프로그램에서 코드를 다시 실행할 때까지 1 분의 지연을 사용했습니다. 지연 시간 값을 기준으로 터미널에 표시 할 타이머를 프로그래밍하려면 어떻게해야합니까? 미리 감사드립니다 ...Python : 터미널에 타이머를 표시하는 방법

+1

귀하의 질문에 완전히 명확하지 않습니다. 스크립트가 실행될 때 터미널이 현재 시간을 표시하도록 하시겠습니까? 또는 프로그램을 실행 한 시간을 표시하고 싶습니까? 지연된 시간을 의미하는 것은 해석에 실제로 열려 있습니다. 또한 우리가 살펴보고 더 중요한 느낌을 갖도록 코드를 제공하면 도움이 될 것입니다. –

+0

delay()가 60 초인 경우, 정지 시계처럼 카운트 다운을 표시하고 싶습니다. hour : min : sec –

답변

14

가장 간단한 방법은 다음과 같습니다. 당신은 당신이 이전에 작성하는지 덮어 쓸 수 있도록

import time 
import sys 

for remaining in range(10, 0, -1): 
    sys.stdout.write("\r") 
    sys.stdout.write("{:2d} seconds remaining.".format(remaining)) 
    sys.stdout.flush() 
    time.sleep(1) 

sys.stdout.write("\rComplete!   \n") 

"\r"은 행의 시작 부분에 텍스트 커서를 반환합니다. 일반적으로 출력은 개행 ("\n")까지 작성되지 않으므로 수동으로 .flush() 출력 스트림을 사용해야합니다.

줄이 지워지지 않기 때문에 새 출력 줄 각각이 기존 줄을 덮을만큼 길어야합니다.

curses 모듈에는 고급 터미널 출력을위한 도구가 있지만 사용하기가 더 복잡합니다.

+0

이것은 매우 유용했습니다. 하라 sys.stdout.write : 라인 교체, 파이썬의 이전 버전에 대한 당신 – Trefex

+0

감사 ("{: 2D}. 초 남은". 형식() 나머지) 하라 sys.stdout.write ("{0 } 초 남음. ". format (remaining)) –

관련 문제