如何检查Python脚本是否以交互方式启动?
我想让我的脚本拥有2个行为,一个是作为计划任务启动的,另一个是手动启动的行为。我如何测试互动性?如何检查Python脚本是否以交互方式启动?
编辑:这可能是一个cron作业,或通过Windows批处理文件,通过计划的任务启动。
如果你想知道,如果你从一个终端读取(尚不清楚,如果这是一个足以区分,请说明),可以使用
sys.stdin.isatty()
您应该简单地添加一个命令行开关在计划任务中,并在脚本中检查它,根据需要修改行为。显式比隐式更好。
此设计的一个好处是:无论您如何实际调用脚本,您都可以测试两种行为。
同意。通常使用awesomeApp运行脚本,并使用awesomeApp - 批处理作为批处理作业。 – scvalex 2009-08-16 19:07:17
我只是添加一个命令行开关,当你用cron的称之为:
蟒蛇yourscript.py -scheduled
然后在你的程序
import sys
if "-scheduled" in sys.argv:
#--non-interactive code--
else:
#--interactive code--
至少使用传统的“ - 计划” – 2009-10-19 19:33:24
“计划任务” ?由什么软件开始?什么平台? “手动?”从IDLE?从命令行?什么平台?什么外壳? – 2009-08-16 18:50:10
[检查Python脚本中的交互式shell]可能的重复(https://stackoverflow.com/questions/6108330/checking-for-interactive-shell-in-a-python-script) – ideasman42 2017-08-29 06:07:58