2017-11-17 11 views
0

C++では、coutcerrに出力できます。実際にはこれはコードで結果を一度に2つのファイルにリダイレクトすることができます:Python:複数のリダイレクトへの出力

./some_program > first_file.something 2> second_file.else 

私はこれをどのようにしてPythonで達成できますか?

答えて

2

など。 Python 3では、coutcerrという同等のもの、つまりsys.stdoutsys.stderrをインポートしてください。

from sys import stdout, stderr 

print('to standard output', file=stdout) 
print('to standard error', file=stderr) 

その後、あなたは通常どおりに、bashのリダイレクトを使用することができます。

python program.py 1>output 2>errors 

そして、あなたが望むならば、あなたもあなたが好きなそれらに名前を付けることができます。例えば:

from sys import stdout as cout, stderr as cerr 

print('to standard output', file=cout) 
print('to standard error', file=cerr) 

それは「Python的」少ないのですが、それはあなたがC++の経験からのギャップを埋めることができます場合は、それが助けとなることがあります。

+0

awesome - thanks man – bordeo

1

コマンドラインからリダイレクトしたい場合は、それはかなりあなたがC++で行うのと同じ方法です:

python file.py > first_file.txt 2> second_file.txt 

プログラムのことができます。 sys.stdoutsys.stderrで、これを行うには、あなたが選んだファイルで猿をパッチする。

関連する問題