2017-08-24 18 views
-1

今日は簡単な質問があります。基本的には、CMDシェルで2行以上の出力をpythonで出力したいのです。次に例を示します。CMDシェル(Python)で複数行の出力を印刷

正規CMDシェル:私が欲しいもの

Output 

Output 
Output1 
Ect. 

私はFYIのPython 3.xを使用しています。私はこれが典型的なPythonライブラリで可能かどうかは知りません。あなたの答えに感謝します!

編集:混乱のために、私は詳細を書くことに専念しました。私は2つ以上のライブ出力をしたいと思いますが、ループや問題の何かが実行されています。例えば、私がwhile Trueループでクロックを実行していた場合、キャリッジリターン機能を使用して2つの出力を実行することができます。

編集#2:だから私はあなたにこの質問に対する答えが必要な状況を与えるつもりです。基本的には、現在の時刻と時刻を午後7時30分までCMDシェルに返すループを作ったので、すべてが1行にきれいに残っています。私は1行に必要なすべての情報を印刷するしかし、私は代わりにそれを必要とする、それがここ2にそれをしない出力されます。

Time: 12:44:38 
Time Left Until 7:30: 6:45:22 
:私はそれになりたい何

Time: 12:44:38 Time Left Until 7:30: 6:45:22 

ここ

は私のコードです:私は、キャリッジリターン下に何かを印刷しようとすると

import datetime 
import time 
import sys 
while True: 
    start_time = datetime.datetime.now().time().strftime('%H:%M:%S') 
    end_time = ('19:30:00') 
    total_time=(datetime.datetime.strptime(end_time,'%H:%M:%S') - datetime.datetime.strptime(start_time,'%H:%M:%S')) 

    print ('Time: ', start_time, 'Time Left Until 7:30: ', total_time, end='\r') 

    time.sleep(0.1) 

、それが印刷されないと私は1つでダウンしていない、第二の印刷で元のループプリントをキャリッジリターンを置くときライン。再度、感謝します!

+0

だけでは動作しませんでした出力? – puf

+0

標準出力に印刷したい場合は、print()関数を使用してください。 – AllenMoh

+0

@AllenMoh私は知っていますが、出力印刷を同時に実行したいです。 – Liam

答えて

1

clsコマンドが点滅する場合は、ANSIコマンドを使用して制御できます。まず、WindowsのcmdでANSIを有効にする必要があります。 coloramaなどのサードパーティのライブラリを使用して、そのようにすることができます。

ANSIを有効にしたら、それを使って行を上に移動し、行を削除できます(素晴らしい色を追加することもできます)。

ラインアップ
colorama.init() # don't forget to call 

sys.stout.write('\033[1A')

現在の行を削除します。sys.stout.write(' \r\033[K')

+0

もう一度、回答。 – Liam

+0

うれしい –

1

os.system('cls')を呼び出して、cmdウィンドウを更新することができます。これで画面が消去され、更新された出力を印刷することができます。

+0

私の新しい編集を参照してください – Liam

+0

clsコマンドを使用して、画面全体を消去し、キャリッジリターンなしで普通にラインを印刷してください –

+0

それは動作しますが、画面クリアの間に点滅します – Liam

関連する問題