从任务计划程序运行时,print(“ \ r”)不能按预期工作

时间:2019-04-30 13:46:05

标签: python windows

如果我启动cmd.exe,请进入python控制台并测试以下代码,该控制台将按预期仅打印到一行。

如果我通过从任务计划程序启动python文件来运行相同的代码,它将每秒在新行上打印出相同的句子。

我希望它的行为与通过cmd.exe运行它的行为相同(即:仅打印到一行并每次覆盖当前行)

我试图让任务计划程序在cmd.exe中运行python脚本,但似乎要做的就是将taskeng.exe作为外壳运行。

代码

import time
reportToCheck = 'Application and Acquisition Loader2'
for x in range(5):
    for y in range(60):
        print("\rscript - %s - not yet complete, checking again in: %02d:%02d" %(reportToCheck, 4-x, 59-y)),
        time.sleep(1)

预期:仅打印到一行

实际(在任务计划程序中运行时):每次打印到新行

1 个答案:

答案 0 :(得分:0)

默认的python print行为:

print(*objs, sep=' ', end='\n', file=sys.stdout, flush=False)

如您所见,默认情况下,所有打印呼叫都在换行。要忽略这种行为,您可以自己指定结束符号:

print("\rscript - %s - not yet complete ...", end="")