[英]Subprocess pipes stdin without using files
我有一個主進程,我運行一個子進程,stdin是我想要管道的。 我知道我可以使用文件來做到這一點:
import subprocess
subprocess.call('shell command', stdin=open('somefile','mode'))
有沒有選項使用自定義標准輸入管道沒有實際的硬盤驅動器文件? 有沒有選項,例如,使用字符串列表(每個列表元素將是換行符)?
我知道python子.readline()
在管道對象上調用.readline()
。
首先,使用subprocess.Popen
- .call
只是它的一個快捷方式,你需要訪問Popen
實例,這樣你才能寫入管道。 然后通過subprocess.PIPE
旗為stdin
kwarg。 就像是:
import subprocess
proc = subprocess.Popen('shell command', stdin=subprocess.PIPE)
proc.stdin.write("my data")
http://docs.python.org/2/library/subprocess.html#subprocess.PIPE
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.