2015-11-24 20 views
11

過去有codecs被替換爲io。儘管看起來使用io.open更爲明智,但大多數介紹性的python類仍然教授openio.open vs python中打開的區別

有與Difference between open and codecs.open in Python一個問題,但open只有鴨型io.open

如果不是,爲什麼使用io.open更好?爲什麼更容易用open進行教學?

在這篇文章中(http://code.activestate.com/lists/python-list/681909/),史蒂芬DAprano說,內置的open使用在後端的io.open所以我們應該重構我們的代碼來使用open而不是io.open

除了py2.x的向後兼容性,是否有任何理由在py3.0中使用io.open而不是open?根據該文檔

+1

退房'幫助工作時 允許使用更廣泛的編解碼器的(開放) ',你會發現它和'io.open()'是一樣的 - 甚至標題中顯示'在模塊io中打開內建函數的幫助',所以換句話說,沒有理由使用'io。 open()'如果你用Python 3編寫程序。 –

+0

@TimPietzcker,'io.open'只是爲了向後兼容嗎?如果是這樣,我應該開始更改'python3'的所有類資料=) – alvas

+0

是的,可能。它使得從2.x移植到3.x變得更容易,但如果你從3.x開始,就沒有必要把它變得更復雜。 –

回答

16

形勢Python3:

io.open(file, *[options]*)

這是內置open()函數的別名。

儘管內置open()和相關聯的IO模塊是本 推薦的方法爲具有編碼文本文件時,該模塊 [即編解碼器]提供額外的效用函數和類二進制 文件

(粗體和斜體字是我的編輯)