반응형
콘솔에서 같은 위치에 출력을 쓰려면 어떻게합니까?
나는 파이썬을 처음 사용하고 FTP 서버에서 파일을 자동으로 다운로드하는 스크립트를 작성하고 있습니다. 다운로드 진행 상황을 보여주고 싶지만 다음과 같은 동일한 위치에 머물기를 원합니다.
산출:
FooFile.txt 파일 다운로드 [47 %]
나는 이런 것을 피하려고 노력하고있다 :
Downloading File FooFile.txt [47%]
Downloading File FooFile.txt [48%]
Downloading File FooFile.txt [49%]
어떻게해야합니까?
복제 : 명령 행 응용 프로그램에서 현재 행을 어떻게 인쇄합니까?
캐리지 리턴을 사용할 수도 있습니다.
sys.stdout.write("Download progress: %d%% \r" % (progress) )
sys.stdout.flush()
curses 모듈 과 같은 터미널 처리 라이브러리를 사용하십시오 .
curses 모듈은 휴대용 고급 터미널 처리를위한 사실상의 표준 인 curses 라이브러리에 대한 인터페이스를 제공합니다.
파이썬 2
나는 다음을 좋아한다 :
print 'Downloading File FooFile.txt [%d%%]\r'%i,
데모:
import time
for i in range(100):
time.sleep(0.1)
print 'Downloading File FooFile.txt [%d%%]\r'%i,
파이썬 3
print('Downloading File FooFile.txt [%d%%]\r'%i, end="")
데모:
import time
for i in range(100):
time.sleep(0.1)
print('Downloading File FooFile.txt [%d%%]\r'%i, end="")
백 스페이스 문자를 \b
여러 번 인쇄 한 다음 이전 숫자를 새 숫자로 덮어 씁니다.
#kinda like the one above but better :P
from __future__ import print_function
from time import sleep
for i in range(101):
str1="Downloading File FooFile.txt [{}%]".format(i)
back="\b"*len(str1)
print(str1, end="")
sleep(0.1)
print(back, end="")
Python 3xx의 경우 :
import time
for i in range(10):
time.sleep(0.2)
print ("\r Loading... {}".format(i)+str(i), end="")
나를 위해 일한 깔끔한 솔루션은 다음과 같습니다.
from __future__ import print_function
import sys
for i in range(10**6):
perc = float(i) / 10**6 * 100
print(">>> Download is {}% complete ".format(perc), end='\r')
sys.stdout.flush()
print("")
는 sys.stdout.flush
달리 정말 투박 가져오고 중요하다 print("")
루프 종료에 대한에도 중요하다.
UPDATE : 코멘트에서 언급 한 바와 같이, print
또한이 flush
인수를. 따라서 다음도 작동합니다.
from __future__ import print_function
for i in range(10**6):
perc = float(i) / 10**6 * 100
print(">>> Download is {}% complete ".format(perc), end='\r', flush=True)
print("")
x="A Sting {}"
for i in range(0,1000000):
y=list(x.format(i))
print(x.format(i),end="")
for j in range(0,len(y)):
print("\b",end="")
참고 URL : https://stackoverflow.com/questions/517127/how-do-i-write-output-in-same-place-on-the-console
반응형
'programing tip' 카테고리의 다른 글
Xcode에서 블록 주석을 작성하는 단축키가 있습니까? (0) | 2020.06.17 |
---|---|
PostgreSQL에 행이 존재하는지 확인 (0) | 2020.06.17 |
입력 필드의 너비를 입력으로 조정 (0) | 2020.06.17 |
TPL 작업을 중단 / 취소하려면 어떻게합니까? (0) | 2020.06.17 |
PowerShell에서 SQL Server 쿼리를 어떻게 실행합니까? (0) | 2020.06.17 |