您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關什么是Python中的子進程,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
子進程
很多時候,子進程并不是自身,而是一個外部進程。我們創建了子進程后,還需要控制子進程的輸入和輸出。當試圖通過python做一些運維工作的時候,subprocess簡直是頂梁柱。
subprocess模塊可以讓我們非常方便地啟動一個子進程,然后控制其輸入和輸出。
下面的例子演示了如何在Python代碼中運行命令nslookup <某個域名>,這和命令行直接運行的效果是一樣的:
#!/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
看完上述內容,你們對什么是Python中的子進程有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。