你又沒有遇到過,在寫程式碼最後執行的時候,出現執行不了,在解析其他檔案的時候出現報錯,那麼你是如何解決的呢?今天小編為大家帶來一個技術性問題是怎麼解決的過程。用python解析檔案(檔案中含有中文),並寫入其他檔案時報錯:
UnicodeEncodeError:‘ascii’codeccan‘tencodecharacters
經過google大神的指導,確定以下解決方式:
#coding:utf-8importsysreload(sys)sys。setdefaultencoding(’utf-8‘)
疑問:為什麼需要reload呢?
grep-r-i’setdefaultencoding‘/usr/lib/python2。7輸出結果為:
/usr/lib/python2。7/site。py:sys。setdefaultencoding(encoding)#NeedsPythonUnicodebuild!
/usr/lib/python2。7/site。py:#Removesys。setdefaultencoding()sothatuserscannotchangethe
/usr/lib/python2。7/site。py:ifhasattr(sys,“setdefaultencoding”):
/usr/lib/python2。7/site。py:delsys。setdefaultencoding
Binaryfile/usr/lib/python2。7/site。pycmatches
把delsys。setdefaultencoding防止使用者在改變defaultencoding,這個原因暫時真不知。。
對於windows平臺,上面的辦法真不行,對於python2。x中,總是存在這個問題,在Python3。x的時候這真不是個事,
對於windows平臺,
檔案開頭宣告為#coding=utf-8,
寫入字串時,轉換編碼為GBK
file。write(str。encode(’gbk‘))
還要注意的是:open(。。。。)不能有任何運算,一次只能寫入一行,所以要用+來連成一行
#coding=utf-8
當這些問題都解決以後,你就會發現,你已經在塊成為一個高手了。