私が知っている特定のファイルに対してfindコマンドを実行しています。ファイルの場所を知っていると仮定したくないので、そのファイルへのパスを取得したいと思います。私の理解は、標準出力をリダイレクトし、コマンドを実行して出力をキャプチャし、標準出力を再接続し、結果を取得する必要があることです。問題は、私は結果を取得するとき...私はそれらを解読することはできません来る:プリントコマンドが使用されているかのように、標準出力メモリファイルを英語の文字列に変換します。
import os
from cStringIO import StringIO
stdout_backup = sys.stdout #Backup standard output
stdout_output = StringIO()
sys.stdout = stdout_output #Redirect standard output
os.system("find . -name 'foobar.ext' -print") #Find a known file
sys.stdout = stdout_backup #re-hook-up standard output as top priority
paths_to_file = stdout_ouput.get_value() #Retrieve results
私は私が望むことができるすべてのパスを見つけ、トラブルはそのpaths_to_file利回りですこの:
Out[9]: '\n\x01\x1b[0;32m\x02In [\x01\x1b[1;32m\x027\x01\x1b[0;32m\x02]: \x01\x1b[0m\x02\n\x01\x1b[0;32m\x02In [\x01\x1b[1;32m\x028\x01\x1b[0;32m\x02]: \x01\x1b[0m\x02'
Iこれで何をするべきか分かりません。
./Work/Halpin Programs/Servers/selenium-server.jar
がどのように私はその出力を使用可能にするか、ファイルを開くため:printコマンドが提供するもののようなものは何私が欲しかったですか? printコマンドが何を得ることができたら、私は自分が望むファイルを開くことができます。
私が間違っている場合は、質問の向きを変更してください。ありがとうございました!
スヴェン、ご回答ありがとうございました。私はそれをテストしようとしている。あなたはos.walkを精巧に考えていますか? –
華麗!ありがとう! –