2011-07-12 29 views
3

私はPythonには新しく、stderr.write関数にいくつかの問題があります。コードで説明しようとします。私はこれをやっていた前に:stderr.write;文字列を印刷する

print "Unexpected error! File {0} could not be converted." .format(src) 

しかし、私は、私はこれをやってみましたので、他のステータスメッセージからエラーメッセージを分離したかった:

sys.stderr.write "Unexpected error! File %s could not be converted." src 

をしかし、これはエラーになります。私もそれをgoogledしかし、私は何かを見つけることができませんでした。誰も私をここで助けてくれませんか?文字列srcstderr.writeを使用して印刷するにはどうすればよいですか?

sys.stderr.write("Unexpected error! File %s could not be converted." % src) 

または、Pythonの2.xおよび3.xで:Pythonの2.xで

答えて

8

sys.stderr.write("Unexpected error! File {0} could not be converted.".format(src)) 
+0

また、ログに記録するモジュールを使用することを検討してください。 –

+1

もちろんロギングは非常に便利ですが、時には詳細を記録し、エラーが発生したことをマークするためにstderrに何かを印刷する方が良い場合があります – mrbox

+0

Thx!魅力的な作品! :-) –

0

sys.stderr.writeはとても関数を呼び出すために、あなたがする必要がある機能引数の周りにカッコを使用:のpython3のように、printも関数であり、またrのだろうということ

In [1]: src='foo' 

In [2]: sys.stderr.write("Unexpected error! File %s could not be converted."%src) 
Unexpected error! File foo could not be converted. 

注意大括弧。

0

あなたは(、)見逃していると%:Pythonで

import sys 
sys.stderr.write("Unexpected error! File %s could not be converted." % src) 
1

関数が呼び出されるためには、必要に応じて引数を含む、括弧((...))に続いする必要があります。

sys.stderr.write("Unexpected error! File %s could not be converted.\n" % (src,))