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