我希望我的脚本有 2 种行为,一种是作为计划任务启动的,另一种是手动启动的。我如何测试交互性?
编辑:这可以是 cron 作业,也可以是由 Windows 批处理文件通过计划任务启动的。
我希望我的脚本有 2 种行为,一种是作为计划任务启动的,另一种是手动启动的。我如何测试交互性?
编辑:这可以是 cron 作业,也可以是由 Windows 批处理文件通过计划任务启动的。
您应该简单地在计划任务中添加一个命令行开关,并在脚本中检查它,并根据需要修改行为。显式优于隐式。
这种设计的一个好处是:无论您实际调用脚本的方式如何,您都可以测试这两种行为。
如果您想知道您是否正在从终端阅读(不清楚这是否足以区分,请澄清)您可以使用
sys.stdin.isatty()
当您使用 cron 调用它时,我只需添加一个命令行开关:
python yourscript.py -scheduled
然后在你的程序中
import sys
if "-scheduled" in sys.argv:
#--non-interactive code--
else:
#--interactive code--