@lenooh는 내 쿼리를 만족 시켰습니다. 'python suppress newline'을 검색하는 동안이 기사를 발견했습니다. Raspberry Pi에서 IDLE3을 사용하여 PuTTY 용 Python 3.2를 개발하고 있습니다. PuTTY 명령 줄에 진행률 표시 줄을 만들고 싶었습니다. 페이지가 스크롤되는 것을 원하지 않았습니다. 나는 프로그램이 중단되지 않았거나 메리 무한 루프에서 점심 식사로 보내지 않았다는 것을 사용자가 다시 놀라게하지 못하게하는 수평선을 원했습니다. 하지만 시간이 좀 걸릴 수 있습니다. ' 대화 형 메시지-텍스트의 진행률 표시 줄과 같습니다.
는 print('Skimming for', search_string, '\b! .001', end='')
'001'을 닦아내 및 기간의 라인을 연장 ⌫⌫⌫ rubout 같이 세 백 스페이스를 인쇄 할 다음 화면 쓰기 다음 기간 준비하여 메시지를 초기화한다. search_string
앵무새가 사용자 입력을 한 후 , 텍스트 \b!
의 느낌표 가 문장 search_string
의 공간을 뒤로 print()
밀도록 문장 부호를 잘라내어 구두점을 올바르게 배치합니다. 그다음에는 시뮬레이션하고있는 '진행률 표시 줄'의 공백과 첫 번째 '점'이 이어집니다. 불필요하게, 메시지는 또한 페이지 번호로 시작하여 (제로 0으로 3의 길이로 포맷 됨) 사용자에게 진행 상황이 처리되고 있음을 사용자에게 통지합니다. 권리.
import sys
page=1
search_string=input('Search for?',)
print('Skimming for', search_string, '\b! .001', end='')
sys.stdout.flush() # the print function with an end='' won't print unless forced
while page:
# some stuff…
# search, scrub, and build bulk output list[], count items,
# set done flag True
page=page+1 #done flag set in 'some_stuff'
sys.stdout.write('\b\b\b.'+format(page, '03')) #<-- here's the progress bar meat
sys.stdout.flush()
if done: #( flag alternative to break, exit or quit)
print('\nSorting', item_count, 'items')
page=0 # exits the 'while page' loop
list.sort()
for item_count in range(0, items)
print(list[item_count])
#print footers here
if not (len(list)==items):
print('#error_handler')
진행률 표시 줄에 고기가 sys.stdout.write('\b\b\b.'+format(page, '03'))
있습니다. 먼저 왼쪽으로 지우려면 '\ b \ b \ b'를 ⌫⌫⌫ rubout으로하여 세 개의 숫자 위에 커서를 백업하고 진행률 막대 길이에 추가 할 새 마침표를 삭제합니다. 그런 다음 지금까지 진행 한 페이지의 세 자리를 씁니다. sys.stdout.write()
전체 버퍼 또는 출력 채널이 닫힐 때까지 기다리 므로 sys.stdout.flush()
즉시 쓰기가 수행됩니다. sys.stdout.flush()
끝에 print()
생략되어 내장되어print(txt, end='' )
. 그런 다음 코드는 평범한 시간 집약적 작업을 반복하면서 여기로 돌아와 세 자리를 지우고 마침표를 추가하고 세 자리를 다시 쓰고 증분하여 더 이상 인쇄하지 않습니다.
닦고 다시 세 자리는 필요한 것은 아니다 - 그것은 모범을 단지 번창의 sys.stdout.write()
대 print()
. 마침표를 사용하여 쉽게 마침표를 작성하고 공백이나 줄 바꿈없이 마침표 막대를 한 번 더 길게 인쇄하여 3 개의 백 슬래시-b ⌫ 백 스페이스 (물론 서식이 지정된 페이지 수도 쓰지 않음)를 잊을 수 있습니다.sys.stdout.write('.'); sys.stdout.flush()
쌍.
Raspberry Pi IDLE3 Python 쉘은 백 스페이스를 ⌫ 루 아웃으로 인식하지 않고 대신 공백을 인쇄하여 분수의 명백한 목록을 생성합니다.
— (o = 8> 위즈