2017-08-24 100 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