私はここで多くのことを検索し、グーグルでも検索して、最初のコマンドの stderr が最終的な stderr に表示されない理由を見つけようとしました。「check_output」(python3) や「commands」(python2) などの他のメソッドは知っていますが、独自のクロスプラットフォームのメソッドを作成したいと考えています。問題は次のとおりです。
import subprocess
p1 = subprocess.Popen('dirr', shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
p2 = subprocess.Popen('find "j"', shell=True, stdin=p1.stdout, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
p1.stdout.close()
output,error=p2.communicate()
print(output,'<----->',error)
stderr=subprocess.STDOUT のリダイレクトも試しましたが、状況は変わりませんでした。stdout または stderr で確認できるように、最初のコマンドから stderr をリダイレクトする方法を教えてください。
よろしく、