我想知道python中的子进程是什么意思?它是类似于 Java 中的接口还是完全不同的主题?
我已经读过它是旧模块的替代品,例如os.system
os.spawn*
os.popen*
popen2.*
commands.*
但仍然无法获得相同的准确和解释性教程。
它们具体用在什么地方?
我想知道python中的子进程是什么意思?它是类似于 Java 中的接口还是完全不同的主题?
我已经读过它是旧模块的替代品,例如os.system
os.spawn*
os.popen*
popen2.*
commands.*
但仍然无法获得相同的准确和解释性教程。
它们具体用在什么地方?
创建子流程!
这是一个操作系统(OS) 概念,与 Java 接口无关。
你的操作系统控制进程,就像你的 python 程序一样。使用该subprocess
模块,很容易要求操作系统创建更多这样的进程,并与它们通信。
进程在层次结构中进行控制,即父母和孩子的树状结构。当您的计算机启动时,有一个从 OS 内核启动的主进程,其他所有进程要么是该主进程的直接子进程,要么是间接子进程。
该模块提供了一个更高级别的 API 来执行此操作,而不是 C-API 函数的直接翻译os.system
等os.spawn*
,具有更高的灵活性和安全性来解决安全问题。
Python 中的子进程与任何其他语言中的子进程相同。
正如您从模块的文档中所读到的,它可以(并且应该)用于生成其他程序并控制它们的输入或输出。
例如,如果您想计算数据流的 SHA1 和,您可以派生一个调用sha1sum
二进制文件的子进程,将数据提供给它的标准输入,关闭它并从标准输出中读取结果。(有更好的方法可以做到这一点;它只是作为一个例子。)
该模块os.system
与其他相关功能相比更受欢迎,因为它提供了更高的安全性、灵活性和易用性。