我需要确定调用我的Python脚本的shell是否处于交互模式.如果它处于交互模式,程序应将输出管道输出到较小(1)以便于阅读.如果没有,它应该只是将其输出打印到stdout,以允许它被传送到打印机,文件或不同的寻呼机.
在shell脚本中,我会检查是否定义了提示变量$ PS1,或者在$ - 变量中存储的标志中查找-i选项.
在Python中测试交互性的首选方法是什么?
我希望我的Python脚本在退出之前暂停使用类似于:
raw_input("Press enter to close.")
但仅当它不是通过命令行运行时.命令行程序不应该以这种方式运行.
有没有办法确定我的Python脚本是否是从命令行调用的:
$ python myscript.py
双击myscript.py打开它与操作系统中的默认解释器?
我在Linux的工作,我想知道如何让蟒蛇告诉它是否是直接从终端或通过GUI运行(如ALT-F2),其中输出需要被发送到一个窗口,而不是标准输出将出现在一个终端.
在bash中,这完成了:
if [ -t 0 ] ; then
echo "I'm in a terminal"
else
zenity --info --title "Hello" --text "I'm being run without a terminal"
fi
Run Code Online (Sandbox Code Playgroud)
如何在python中完成?换句话说,相当于[-t 0])?
是否可以检测Python脚本是从命令提示符启动还是用户"双击"Windows上的文件浏览器中的.py文件?
我希望我的脚本有2个行为,一个作为计划任务启动,另一个如果手动启动.我怎样才能测试互动性?
编辑:这可以是一个cron作业,也可以通过Windows批处理文件,通过计划任务启动.