2012-05-08 94 views
0

我有一個我使用的子進程。我必須能夠異步地讀/寫這個進程到它的各自的stdout和stdin。打開並與子進程通信

我該怎麼做?我看過subprocess,但communicate方法等待進程終止(這不是我想要的),並且方法可以阻止。

子流程是不是 Python腳本,但可以在絕對必要時進行編輯。總的來說,我將有大約15個這樣的子流程。

+1

你有沒有試過'pexpect'? – wim

回答

0

看看如何實現communicate

基本上有2種方式來做到這一點:

  1. 要麼使用select()並通知您是否可以讀/寫,
  2. 或委託的讀取和寫入,這既可以阻止,一個線程, 分別。
0

您是否考慮過使用一些隊列或NOSQL數據庫進行進程間通信? 我建議你使用Redis,並用你的進程讀寫不同的密鑰。