导语:
本文主要介绍了关于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
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python3代码中如何使用dir查看对象属性?12/31
- ♥ python dict.item() 方法迭代字典11/11
- ♥ 如何用 vscode 编写 python 代码09/25
- ♥ 如何掌握python中类函数的用法?12/01
- ♥ 如何在python中清除屏幕08/17
- ♥ 用python2或python3学习python11/13
内容反馈