知行编程网知行编程网  2022-11-28 06:00 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python中的子进程是什么的相关知识,希望可以帮到处于编程学习途中的小伙伴


Python中的子进程是什么


子进程

很多时候,子进程不是自身,而是外部进程。在我们创建了子进程之后,我们还需要控制子进程的输入和输出。在尝试通过python做一些运维工作时,子进程是骨干。

subprocess 模块允许我们非常方便地启动一个子进程,然后控制它的输入和输出。

以下示例演示如何在 Python 代码中运行命令 nslookup <a domain name>,其效果与直接从命令行运行相同:

#!/usr/bin/env python
# coding=utf-8
import subprocess
print("$ nslookup www.yangcongchufang.com")
r = subprocess.call(['nslookup', 'www.yangcongchufang.com'])
print("Exit code: ", r)

执行结果:

➜ python subcall.py
$ nslookup www.yangcongchufang.com
Server:     219.141.136.10
Address:    219.141.136.10#53
Non-authoritative answer:
Name:   www.yangcongchufang.com
Address: 103.245.222.133
('Exit code: ', 0)

如果子进程还需要输入,则可以通过communicate()方法输入:

#!/usr/bin/env python
# coding=utf-8
import subprocess
print("$ nslookup")
p = subprocess.Popen(['nslookup'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err = p.communicate(b"set q=mx\nyangcongchufang.com\nexit\n")
print(output.decode("utf-8"))
print("Exit code:", p.returncode)

以上代码相当于在命令行执行命令nslookup,然后手动输入:

set q=mx
yangcongchufang.com
exit

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享