Python中的子进程是什么?

时间:2013-08-19 07:15:07

标签: python subprocess

我想知道python中的子进程是什么意思?它与Java中的接口类似,还是一个完全不同的主题?

我已经读过它可以替代os.system os.spawn* os.popen* popen2.* commands.*这样的旧模块 但仍然无法获得相同的精确和解释性教程。

它们在哪里使用?

2 个答案:

答案 0 :(得分:4)

创建子流程!

这是操作系统(OS)概念,与Java接口无关。

您的操作系统控制进程,就像您的python程序一样。使用subprocess模块,可以很容易地要求操作系统创建更多此类流程,并与它们进行通信。

流程由层次结构,父母和子女的树结构控制。在计算机启动时,有一个一个主进程从操作系统内核开始,其他所有进程都是该主进程的直接子进程或间接子进程。

与C-API函数os.systemos.spawn*等的低级直接翻译相比,该模块提供了更高级别的API,可以更灵活,更安全地解决安全问题

答案 1 :(得分:1)

Python中的子进程与任何其他语言中的子进程相同。

正如您可以从the module's documentation读取的那样,它可以(并且应该)用于生成其他程序并控制它们的输入或输出。

例如,如果要计算数据流的SHA1总和,可以分叉调用sha1sum二进制文件的子进程,将数据提供给其stdin,关闭它并从stdout读取结果。 (有更好的方法可以做到这一点;它只是作为一个例子。)

该模块优于os.system以及其他相关功能,因为它提供了更高的安全性,灵活性和易用性。