1. 程式人生 > >Python 3.x中的編碼和解碼問題

Python 3.x中的編碼和解碼問題

最近在極客學院學習爬蟲,老師用的是2.x版本,而我電腦裡的版本是3.x,於是在網頁上查詢在輸出中文時如何正確輸出。
我原以為2.x 3.x在很多語法上沒什麼區別,在解碼decode上應該也差不多,沒想到竟然發現,很多部落格提到2.x提出的解決方案

python 2.x解碼
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)

在3.x中reload在imp包內,並且setdefaultencoding這個屬性並不存在,因為3.x更先進了,請看>>點我
文章說python 3.x不用那麼費心去編碼,所以在解碼上多做一步。

於是,如果想讀取本地檔案。需要這樣:

python 3.x讀取檔案
# -- coding: utf-8 --
f = open(r’…\text.txt’, ‘rb’) # rb是讀
html = f.read().decode()
#print(html)
f.close()

這樣就可以讀取中文了。

python 3.x寫入檔案
# -- coding: utf-8 --
f = open(r’…\text2.txt’, ‘wb’) # wb是寫入
html = f.write(‘我們’.encode())
f.close()

這樣就可以寫入檔案了。
哦也,好開心,雖然只是一個小問題被解決了。