2011-07-12 316 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 

但是這會導致錯誤。我GOOGLE了它,但我找不到任何東西。任何人都可以請幫我在這裏。如何使用stderr.write打印字符串src

回答

8

在Python 2.x中:

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

或者,在Python 2.x和3.x:

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

此外,請考慮使用日誌模塊進行日誌記錄。 –

+1

當然,日誌記錄是非常有用的 - 但有時候,我最好記錄更多細節並打印出不同的東西來標記發生了錯誤 – mrbox

+0

Thx!奇蹟般有效! :-) –

0

sys.stderr.write是一個函數,所以要調用的函數,你需要周圍使用參數括號:

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. 

注意,作爲Python3的,print也是一個函數,會還有R圓括號。

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,))