我需要确定调用我的Python脚本的外壳是否处于交互模式。如果它处于交互模式,则程序应将输出通过管道传递到less(1)以便于阅读。如果没有,它应该只将其输出打印到stdout,以便将其通过管道传输到打印机,文件或其他寻呼机。
在shell脚本中,我将检查是否定义了提示变量$ PS1,或者在$-变量中存储的标志中寻找-i选项。
从Python内部测试交互性的首选方法是什么?
这通常效果很好
import os, sys
if os.isatty(sys.stdout.fileno()):
...
我想在一个非交互式脚本中安装JRE1.7。有没有一种方法可以做到这一点,相当于下面的方法?
问题内容: 通常,您可以执行Python脚本,例如:,但是如果您处于交互模式,那么如何在文件系统上执行Python脚本呢? 应该可以多次执行该脚本。 问题答案: 使用的execfile(“script.py”),但只对蟒蛇2.x的工作,如果你使用的是3.0试试这个
问题内容: 我想检测python是否安装在Linux系统上,如果安装了python版本。 我该怎么做?是否有比解析输出更优雅的东西? 问题答案: 您可以按照以下方式使用: 元组记录在这里。您可以展开上面的Python代码,以适合您需求的方式格式化版本号,或者对它执行检查。 您需要检入脚本来处理未找到脚本的情况。 PS:我使用的语法有点奇怪,以确保与Python 2.x和3.x兼容。
问题内容: 是否有可能让bash脚本自动处理通常会以默认操作呈现给用户的提示?目前,我正在使用bash脚本调用内部工具,该工具将向用户显示提示(提示输入Y / N)以完成操作,但是我编写的脚本必须完全“放手”,因此我需要一种发送到提示符的方法,以允许程序继续执行。这可能吗? 问题答案: 这不是“自动完成”,而是自动化。一种用于这些事情的常用工具称为Expect。 您也可能只需要通过管道输入就能摆脱
问题内容: 如何检查python脚本中是否存在程序? 假设您要检查或是否可用。我们假设他们应该在路上。 最好看到一个多平台解决方案,但就目前而言,Linux足够了。 提示: 运行命令并检查返回代码并不总是足够的,因为某些工具即使尝试也会返回非0结果。 检查命令时,屏幕上不应显示任何内容 另外,我希望能找到更通用的解决方案,例如 问题答案: import subprocess import os
问题内容: 我对通过Python调用控制交互式CLI应用程序感兴趣。 我想在最基本的层次上,我需要一个Python脚本,它将在主机操作系统上启动CLI应用程序。将任何内容从标准输入传送到CLI应用程序,然后将任何输出从CLI应用程序传送到标准输出。 从这个基础上,对输入和输出进行一些处理应该非常简单。 老实说,我可能只需要一个关于该技术被称为的指针。我不知道我要寻找什么。 问题答案: PExpec