我有叫會將myText變量一文中,我要像這樣運行命令調用:系統參數和管
myText = "This is my text"
call("echo" + myText + " | mail username -s subj")
這意味着,我想呼應會將myText文本和傳球郵寄通過管道命令。 什麼是正確的方法來做到這一點?
我有叫會將myText變量一文中,我要像這樣運行命令調用:系統參數和管
myText = "This is my text"
call("echo" + myText + " | mail username -s subj")
這意味着,我想呼應會將myText文本和傳球郵寄通過管道命令。 什麼是正確的方法來做到這一點?
你應該看看os命令,比如popen,它允許你創建一個管道來使進程之間相互通信。 看看這個page
from subprocess import Popen, PIPE
p1 = Popen(['echo', myText], stdout=PIPE)
p2 = Popen('mail', stdin=p1.stdout)
這應該工作。
以及這個「mail username -s subj」應該在'p2 = Popen('mail',stdin = p1.stdout)''中寫成,而不是'mail'? – user2234234
這很好,但需要等待p1和p2才能完成流程。 – tdelaney
@ user2234234 - 它會是'p2 = Popen(['mail','username','-s','subj'],stdin = p1.stdout)'。這個例子直接調用郵件,跳過一箇中間shell,所以它需要將每個參數分解成一個列表。 – tdelaney
此代碼是否工作?如果不是,它是做什麼的?你研究了什麼? –
您是否已經從子流程導入調用中執行過?如果是這樣,所有你缺少的是圍繞'myText'用引號括起來,比如'call(「echo'」+ myText +「'| mail username -s subj」)' –