[英]Python Subprocess write data to pipe
例:
from subprocess import *
proc = Popen(['cat','-'], stdin = PIPE, stdout = PIPE)
msg = 'Through STDIN TO STDOUT'
stdout_value = proc.communicate(msg)[0]
print 'stdout:', stdout_value
輸出:stdout:通過STDIN到STDOUT
在此示例中,我已將msg字符串作為stdin傳遞給被調用的程序(cat-),如果被調用程序是(passwd)命令,該如何傳遞兩個stdin([password value]和[verification password value] )嗎?
是的,可以傳遞兩行輸入:
msg = 'line1\nline2\n'
是的,沒有。 假設passwd
從標准輸入中讀取,您只需將msg
設置為mypass\\nmypass\\n
類的東西,或者簡單地對proc.communicate
進行兩次調用,就可以簡單地在proc
的標准輸入中寫兩行。 但是,出於安全原因, passwd
會直接從終端讀取,除非您明確要求它使用passwd --stdin
(如果有)從標准輸入中讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.