2009-08-16 109 views
2

我想让我的脚本拥有2个行为,一个是作为计划任务启动的,另一个是手动启动的行为。我如何测试互动性?如何检查Python脚本是否以交互方式启动?

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

+1

“计划任务” ?由什么软件开始?什么平台? “手动?”从IDLE?从命令行?什么平台?什么外壳? – 2009-08-16 18:50:10

+0

[检查Python脚本中的交互式shell]可能的重复(https://stackoverflow.com/questions/6108330/checking-for-interactive-shell-in-a-python-script) – ideasman42 2017-08-29 06:07:58

回答

7

如果你想知道,如果你从一个终端读取(尚不清楚,如果这是一个足以区分,请说明),可以使用

sys.stdin.isatty() 
11

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

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

+0

同意。通常使用awesomeApp运行脚本,并使用awesomeApp - 批处理作为批处理作业。 – scvalex 2009-08-16 19:07:17

0

我只是添加一个命令行开关,当你用cron的称之为:

蟒蛇yourscript.py -scheduled

然后在你的程序

import sys 

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

至少使用传统的“ - 计划” – 2009-10-19 19:33:24

相关问题