存在することがわかっている特定のファイルに対してfindコマンドを実行しています。ファイルがどこにあるかを知っているとは思わないので、そのファイルへのパスを取得したいと思います。私の理解では、stdoutをリダイレクトし、コマンドを実行して出力をキャプチャし、標準出力を再接続してから、結果を取得する必要があります。結果を取得するときに問題が発生します...結果を解読できません:
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'
私はこれをどうしたらいいのか分かりません。私が欲しかったのは、printコマンドが提供するもののようなものでした。
./Work/Halpin Programs/Servers/selenium-server.jar
その出力をファイルを開くために使用できるようにするにはどうすればよいですか?印刷コマンドの結果を取得できれば、必要なファイルを開くことができます。
見当違いの場合は、質問の方向を変えてください。ありがとうございました!