2012-01-31 12 views
3

基本的にログファイルを複製するためのサブプロセスを生成するPythonプログラムを作成しています。私は2.7で作業コードを持っていますが、ベンダーの制限のために、私はPython 2.3を使用することを余儀なくされているので、サブプロセスモジュールを使用することはのです。Python 2.7のサブプロセスを使ってPython 2.3に翻訳する

私はこれを翻訳する助けが必要:

self.FILE_OUT = open(self.file2write,"a") 
self.FILE_IN=subprocess.Popen(self.file2process, 
       stdout=self.FILE_OUT, 
       bufsize=0, 
       shell=True) 

2.3コードに。

stdout=self.FILE_OUTの操作方法が混乱しています。

+0

ドキュメントはかなり明確ようです。 http://docs.python.org/release/2.3/lib/module-popen2.html必要なすべての情報が必要です。どの部分が混乱していますか? –

答えて

2

これは何をしているのかによって異なりますが、コマンド実行の古い方法はos.popenです。それは次のように機能します。

>>> echo_stdout = os.popen('echo foo', 'r') 
>>> echo_stdout.read() 
'foo\n' 

stdinstdout、またはstdinを含む3タプル、stdout、およびstderrを含む2要素のタプルを返すようなことを行うosモジュール内のpopenの他のバージョンがあります。詳細については、docsを参照し、これが役に立たない場合はお知らせください。ここで

popen2を使用する方法の例です:

>>> cat_stdin, cat_stdout = os.popen2('cat') 
>>> cat_stdin.write('foo\n') 
>>> cat_stdin.close() 
>>> cat_stdout.read() 
'foo\n' 
+0

私はその部分で大丈夫です、それは私が確信していないファイルにSTDOUTを得ることです。 – AltGrendel

+0

ありがとうsenderle。それが私の必要なものです。 – AltGrendel

関連する問題