1. 程式人生 > >python中open,io.open和codecs.open的使用——TypeError:'encoding' is an invalid keyword argument

python中open,io.open和codecs.open的使用——TypeError:'encoding' is an invalid keyword argument

問題描述:

python開啟檔案最簡單的方法:f = open('test.txt', 'r')

但有時候我們要指定編碼方式,例如 f=open('test.txt', 'r', encoding='utf-8'),如果是python3則沒有問題,但如果是python2,則會報錯:TypeError: 'encoding' is an invalid keyword argument for this function.

原因

Python 2的open實際上是file模組提供的,而Python 3的open是io模組提供的。然後,Python 2.6引入了這個Python 3的特性,叫做io.open

,以便和原來的open相區分。

解決方法:

在python2下要指定編碼方式開啟檔案,最好引入codecs,因為io.open有時候也會有一些奇怪的問題。

為了程式碼魯棒性,建議在open開啟檔案時,統一引入codecs,使用codecs.open().