簡體   English   中英

子進程管道stdin而不使用文件

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

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