Python中subprocess的简单使用示例
程序员文章站
2022-03-21 15:24:54
...
在c语言中,一个进程可以fork出一个子进程,并让这个子进程exec一个新的命令。在python中,我们通过标准库的subprocess包来fork一个子进程,并在子进程中运行一个新的程序。
函数解释:
父进程等待子进程完成,返回执行是否成功。
subprocess包中有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本通信。
使用subprocess包中的函数创建子进程的时候,需要注意:
- 在创建子进程之后,父进程是否暂停,并等待子进程运行。
- 函数返回什么
- 当return code不为0时,父进程如何处理。
subprocess.call()
函数原型:
代码如下:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None)
函数解释:
父进程等待子进程完成,返回执行是否成功。
代码如下:
subprocess.Popen
函数原型:
代码如下:
subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=())
Popen对象创建后,主程序不会自动等待子进程完成。我们必须调用[/code]对象的wait()方法,父进程才会等待 (也就是阻塞block)。
推荐阅读
-
Python中类的定义、继承及使用对象实例详解
-
对python中的argv和argc使用详解
-
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
-
简单的Python的curses库使用教程
-
Python中的高级函数map/reduce使用实例
-
Python_WIN10系统中递归所有文件夹所有文件_移动所有文件到主目录(使用到的库:os + glob + shutil)
-
python中urlparse模块介绍与使用示例
-
深入理解Python单元测试unittest的使用示例
-
详解Python中namedtuple的使用
-
Python3.6基于正则实现的计算器示例【无优化简单注释版】