我有一個python腳本,我正在生成安裝在我的機器上的軟件列表。讓這個腳本的名稱是「install.py」 - 它看起來如下:如何處理python腳本中的UnicodeEncodeError?
import wmi
w = wmi.WMI()
for p in w.Win32_Product():
if (p.Version is not None) and (p.Caption is not None):
print p.Caption + " & "+ p.Version + "\\\\"
print "\hline"
現在,我實際上是由一些執行它另一個腳本書面方式這個腳本的輸出到一個output.tex文件說「 output_file.py」,看起來如下:
with open("D:/output.tex", "w+") as output:
process = sp.call(["python", "D:/install.py"], stdout=output)
因此,當上述件執行我得到輸出‘output.tex’但隨着誤差:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 43:
ordinal not in range(128)
所以,實際上唐沒有那麼詳細軟件在我的系統上。那麼我該怎麼做才能在腳本中刪除這個錯誤。請幫助。
你可以嘗試在python腳本的開頭使用'from __future__ import unicode_literals'。或者您可以嘗試使用unicode編碼打開文件。請參閱https://docs.python.org/2/howto/unicode.html – Randrian