私の問題は、Pythonコンソールで前回の印刷行を上書き/消去できるようにすることです。この質問は(私がすべてでは何も出力しないため答えは、正しいものとしてマーク)が ある非常に同じコードで、何回も(例えばPython - Remove and Replace Printed itemsを)頼まれました:前のコンソール行の上書き/クリア
for i in range(10):
print("Loading" + "." * i)
time.sleep(1)
sys.stdout.write("\033[F") # Cursor up one line
sys.stdout.write("\033[K") # Clear to the end of line
私は(出力を得ますPython IDLEで):
Loading
[F[KLoading.
[F[KLoading..
[F[KLoading...
[F[KLoading....
[F[KLoading.....
[F[KLoading......
[F[KLoading.......
[F[KLoading........
[F[KLoading.........
[F[KLoading..........
[F[K
アイデアはありますか?私はたくさんのグーグルで探検しました。何も印刷しないか、上書きしません。
これが役に立ちましたら、私はWindows 8.1とPython 3.51を実行しています。コードトラフcmdを実行しても影響はありません。
また、sys.stdout.flush()
を追加することは役に立ちません。
はあなたが確認しました:http://stackoverflow.com/questions/27575929/ansi-escape-sequences-arent-printed-to-stdout-on-windows – Zorgmorduk
シーケンス '\ 033 [Fのような'は端末によってサポートされなければならない(se e 'termcap(3)')。 AFAIKウィンドウは、常に端末機能のサポートが非常に貧弱です –