有什么方法可以知道 Python 中的单独程序可用的命令行选项吗?
Is there any way to know the command-line options available for a separate program from Python?
我对 python 的 subprocess 和 os 模块比较陌生。因此,我能够像 运行 bc、cat 命令那样使用 python 执行流程并放入数据在 stdin 中并从 stdout.
中获取结果
现在我想首先知道像cat这样的进程通过python代码接受什么标志(如果是possible)。
然后我想执行一个设置了一些标志的特定命令。
我用谷歌搜索了这两件事,似乎我找到了第二个的解决方案,但有多种方法。所以,如果有人知道如何做这些事情并以某种标准的方式去做,我们将不胜感激。
在进程的上下文中,这些标志称为参数,因此也称为参数向量 argv
。他们的解释是 100% 取决于调用的程序。换句话说,您必须阅读要调用的程序的联机帮助页或其他文档。
但有一个警告:如果您不直接调用程序而是通过 shell,那么 shell 就是正在启动的实际进程。然后它还解释通配符。例如,如果你 运行 cat
带有参数向量 ['*']
,它将输出名为 *
的文件的内容(如果存在)或错误(如果不存在) .如果 运行 /bin/sh
和 ['-c', 'cat *']
,shell 将首先将 *
解析为当前目录中的所有条目,然后将这些作为单独的参数传递给 cat
.
我对 python 的 subprocess 和 os 模块比较陌生。因此,我能够像 运行 bc、cat 命令那样使用 python 执行流程并放入数据在 stdin 中并从 stdout.
中获取结果现在我想首先知道像cat这样的进程通过python代码接受什么标志(如果是possible)。
然后我想执行一个设置了一些标志的特定命令。
我用谷歌搜索了这两件事,似乎我找到了第二个的解决方案,但有多种方法。所以,如果有人知道如何做这些事情并以某种标准的方式去做,我们将不胜感激。
在进程的上下文中,这些标志称为参数,因此也称为参数向量 argv
。他们的解释是 100% 取决于调用的程序。换句话说,您必须阅读要调用的程序的联机帮助页或其他文档。
但有一个警告:如果您不直接调用程序而是通过 shell,那么 shell 就是正在启动的实际进程。然后它还解释通配符。例如,如果你 运行 cat
带有参数向量 ['*']
,它将输出名为 *
的文件的内容(如果存在)或错误(如果不存在) .如果 运行 /bin/sh
和 ['-c', 'cat *']
,shell 将首先将 *
解析为当前目录中的所有条目,然后将这些作为单独的参数传递给 cat
.