2017-08-22 15 views
1

Iがprint statementsの数であり、Iは、ファイルへのコンソールからの出力をリダイレクトしたいscript.pybash scriptリダイレクトPythonの出力はファイルに

python -u - << EOF 
from my.package import script 
script.run() 
EOF 
>> /path/to/log/file 

に次のコードを持っています。ファイルは正常に作成されますが、空です。

どうすればこの問題を解決できますか?私はここで何が欠けていますか?

+0

実際のpythonファイルを更新できますか? – AK47

+0

[私の答え](https://stackoverflow.com/a/45817397/5291015)は機能しましたか?もしそうなら、[誰かが私の質問に答えるとどうすればいいですか?](https://stackoverflow.com/help/someone-answers)と[回答を受け入れる](https://stackoverflow.com/help/accepted)を読んでください。それはあなたの問題を解決した場合。 – Inian

答えて

2

考え方は正しいですが、再直接的な方法は、ヒアドキュメントのファイルへの出力が間違っている、ヒアドキュメント構文自体は、単に他のコマンドと同様に再指示だけ

python -u - <<EOF>> /path/to/log/file 
from my.package import script 
script.run() 
EOF 
0

はこれを試してください、

import sys 
f = open("log_file.txt", 'w') 
sys.stdout = f 
print "My print statements" 
f.close() 
+0

このコードスニペットでは、[説明](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)を含む質問が本当にあなたの投稿の質を向上させるのに役立つかもしれませんが、将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 – Parfait

0

右構文は次のとおりです。

python -u - >> /path/to/log/file << EOF 
from my.package import script 
script.run() 
EOF 

理由があれば、あなたはbashでのような何かを書くことですその:

util_1 | util_2 | util_3 >> some_file < another_file 

または

util_1 | util_2 | util_3 >> some_file << EOF 
... 
EOF 

another_fileやヒアドキュメントは、(util_1にこの場合)パイプラインの最初のユーティリティの標準入力になります。

関連する問題