2012-04-11 11 views
0

私はPythonスクリプトのcmd出力を、行の最初の3文字を上書きすることなく置き換えたいと考えています。ここで私が何を意味するかである:私はそれをしたいどのように部分的なキャリッジリターンを行う方法

/r
>>>ID1 downloading 
>>>ID1 converting 
>>>ID1 finished 

>>>ID0 downloading 
>>>converting 
>>>finished 

答えて

4

これは、基本的にPythonの問題ではありません。それは標準的な出力質問です。

標準出力はそのようには機能しません。最も簡単なのは、単に "ID1"を書き換えることです。

それ以外の場合は、コンソール固有の書式設定コマンド(ANSIなど)またはcursesのようなライブラリに移動する必要があります。

+1

「再書き込み」とは、「再書き込み」を意味します。合意、+1。 – delnan

0

これを試してください。しかし、これはIDLEでは機能しないかもしれません。

from time import sleep 
from sys import stdout 
stdout.write("\r%s" % "ID1 downloading") 
stdout.flush() 
sleep(1) 
stdout.write("\r%s" % "ID1 converting ") 
stdout.flush() 
sleep(1) 
stdout.write("\r%s" % "ID1 done  ") 
stdout.write("\r \r\n") # clean up 
関連する問題