你又沒有遇到過,在寫代碼最后運行的時候,出現(xiàn)運行不了,在解析其他文件的時候出現(xiàn)報錯,那么你是如何解決的呢?今天小編為大家?guī)硪粋€技術性問題是怎么解決的過程。用python解析文件(文件中含有中文),并寫入其他文件時報錯: UnicodeEncodeError:'ascii'codeccan'tencodecharacters 經(jīng)過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 當這些問題都解決以后,你就會發(fā)現(xiàn),你已經(jīng)在塊成為一個高手了。 |
|
來自: 碼農(nóng)9527 > 《Python》