2017-08-24 137 views
-1

今天我有一個簡單的問題。基本上,我想用python在CMD shell中輸出兩行或多行輸出。這裏有一個例子:用CMD shell(Python)打印多行輸出

定期CMD外殼:

Output 

我想要什麼:

Output 
Output1 
Ect. 

我使用Python 3.X僅供參考。我甚至不知道這是否可以用典型的Python庫,謝謝你的答案!

編輯:由於混亂,我決定寫更多的細節。我想在循環或其他事情正在運行時擁有2個或更多活動輸出。因此,例如,如果我在while True循環中運行時鐘,則可以使用回車函數並運行2個輸出。

編輯#2:所以我會給你們一個我需要這個問題的答案的情況。基本上,我製作了一個循環,它顯示當前時間和時間,直到下午7:30,使用返回值將它們全部保持在一行上。但是,我需要它,而不是我打印,我需要在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) 

當我嘗試打印回車低於任何東西,它不打印,當我把在第二打印回車,原本的環打印在一跌,而不是線。再次感謝!

+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