如何检查Python脚本是否以交互方式启动?

如何检查Python脚本是否以交互方式启动?,python,interactive,Python,Interactive,我希望我的脚本有两种行为,一种是作为计划任务启动的,另一种是手动启动的。如何测试交互性 编辑:这可能是一个cron作业,也可能是由windows批处理文件通过计划任务启动的。如果您想知道是否从终端读取数据(不清楚这是否足以区分,请澄清),您可以使用 sys.stdin.isatty() 您只需在计划任务中添加一个命令行开关,并在脚本中检查它,根据需要修改行为。显式比隐式好 这种设计的一个好处是:无论您实际如何调用脚本,都可以测试这两种行为。当您使用cron调用脚本时,我只需添加一个命令行开关:

我希望我的脚本有两种行为,一种是作为计划任务启动的,另一种是手动启动的。如何测试交互性


编辑:这可能是一个cron作业,也可能是由windows批处理文件通过计划任务启动的。

如果您想知道是否从终端读取数据(不清楚这是否足以区分,请澄清),您可以使用

sys.stdin.isatty()

您只需在计划任务中添加一个命令行开关,并在脚本中检查它,根据需要修改行为。显式比隐式好


这种设计的一个好处是:无论您实际如何调用脚本,都可以测试这两种行为。

当您使用cron调用脚本时,我只需添加一个命令行开关:

python yourscript.py-已计划

然后在你的节目里

import sys

if "-scheduled" in sys.argv:
    #--non-interactive code--
else: 
    #--interactive code--

“预定任务”?从哪一个软件开始?什么站台?“手动?”从空闲开始?从命令行?什么站台?什么外壳?可能是相同的。使用awesomeApp正常运行脚本,并使用awesomeApp--batch作为批处理作业运行脚本。至少使用常规--scheduled