@lenoohは私の質問に満足しました。「python suppress newline」を検索しているときにこの記事を見つけました。Raspberry PiでIDLE3を使用して、PuTTY用のPython 3.2を開発しています。PuTTYコマンドラインにプログレスバーを作成したかったのです。ページがスクロールして離れたくありませんでした。私は、水平線が表示され、ユーザーがプログラムが停止したり、陽気な無限ループで昼食に送られたりしていないことを心配し、ユーザーを安心させたいと思っていました。しかし、これにはしばらく時間がかかる場合があります。インタラクティブなメッセージ-テキストのプログレスバーのようなもの。
print('Skimming for', search_string, '\b! .001', end='')
「001」を拭き取ると期間のラインを拡張、⌫⌫⌫ラブアウトの三のバックスペースを印刷する次の画面書き込み、その後、周期の準備によってメッセージを初期化します。search_string
ユーザー入力をオウムで処理した後\b!
、はsearch_string
テキストの感嘆符をトリミングして、print()
それ以外の場合は強制されるスペースを覆い、句読点を適切に配置します。その後にスペースと、シミュレーションしている「進行状況バー」の最初の「ドット」が続きます。不必要に、メッセージはページ番号(先頭がゼロで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'))
並んでいます。まず、左側を消去するには、カーソルを3つの数字の上に「\ b \ b \ b」を⌫⌫⌫消しゴムとしてバックアップし、新しいピリオドをドロップして、進行状況バーの長さに追加します。次に、これまでに進んだページの3桁を書き込みます。sys.stdout.write()
は、バッファーがいっぱいになるか出力チャネルが閉じるまで待機するため、sys.stdout.flush()
強制的に即時書き込みを行います。sys.stdout.flush()
に組み込まれ、print()
でバイパスされprint(txt, end='' )
ます。次に、コードは平凡な時間のかかる操作をループしますが、ここに戻って3桁をワイプし、ピリオドを追加して、3桁をインクリメントするまで、何も出力しません。
拭き取り、書き換えられた3桁が必要されるものではない-それは例示だけの繁栄ですsys.stdout.write()
対print()
。ピリオドを1つずつ長くするだけでピリオドバーを印刷するだけで、ピリオドで簡単にピリオドを付けて3つのバックスラッシュ-b⌫バックスペース(もちろん、フォーマットされたページ数も書き込まない)を忘れることができます。sys.stdout.write('.'); sys.stdout.flush()
ペア。
Raspberry Pi IDLE3 Pythonシェルはバックスペースを⌫ruboutとして受け入れず、代わりにスペースを出力し、代わりに分数の見かけのリストを作成することに注意してください。
—(o = 8>ウィズ