天天看點

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

這樣就可以寫入檔案了。

哦也,好開心,雖然隻是一個小問題被解決了。