簡體   English   中英

Python子進程將數據寫入管道

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM