2010-06-17 113 views
3

我有兩個進程。異步寫入和讀取文件

  1. 一個進程將某些unix命令的輸出重定向到服務器端的文件。數據總是附加到文件中。例如

    find/> tmp.txt 
    
  2. 另一種方法打開和讀取相同的文件並將其存儲在一個字符串,併發送整個字符串到客戶端。

現在,這件事情需要同時進行。我正在使用python。

任何建議,以什麼可能的方式來實現這種情況。請用示例代碼解釋。

在此先感謝。

Tazim。

+0

是否有必要使用Python? – 2010-06-17 04:47:51

+0

我知道語言無關緊要地實施這種情況。 但我需要使用python提交此提示 – tazim 2010-06-17 06:01:13

+0

提示:請參閱「尾巴」(我確定已經有這樣的Python實現) – 2010-06-17 06:54:33

回答

1

如果你想是有一個Unix命令在一個文件的輸出,並在同一時間顯示它是什麼,你可以把它[tee][1]到標準輸出,並從那裏讀它,如:

>>> command_line = '/bin/find/|tee tmp.txt' 
>>> args = shlex.split(command_line) 
>>> p = subprocess.Popen(args,stdout=subprocess.PIPE) 

從那裏您可以使用commuicate()或直接從POpen對象讀取stdout。看看如何使用here