2015-11-24 21 views
11

Geçmişte, io ile değiştirilen codecs var. io.open'u kullanmak daha uygun gibi görünse de, çoğu tanıtım python sınıfları hala open'u öğretir.io.open - open in python arasındaki fark

Difference between open and codecs.open in Python ama ile bir soru var openio.open bir ördek türü? Değilse

, neden io.open kullanmak daha iyidir? Ve neden open ile öğretmek daha kolay? Bu yazı (http://code.activestate.com/lists/python-list/681909/) olarak

Steven DAprano backend io.open kullanıyor open inşa söylüyor. Bu yüzden, io.open yerine open kodunu kullanmak için kodumuzu yeniden onaylamalı mıyız? py2.x için geriye dönük uyumluluk dışında

, py3.0 içinde io.open yerine open kullanmak için herhangi bir neden vardır? Dokümanlar göre Python3 içinde

+1

Kontrol dışarı 'yardım çalışırken codec daha geniş bir yelpazede kullanılmasına izin ek yarar fonksiyonları ve sınıfları sağlar] codec (açık) 've 'io.open()' ile aynı olduğunu göreceksiniz - başlık bile '' işlev io' içinde yerleşik fonksiyon Yardımı' diyor, yani, 'io kullanmak için bir neden yoktur. open() 'Python 3'te bir program yazıyorsanız –

+0

@TimPietzcker,' io.open' yalnızca geriye dönük uyumluluk için mi? Eğer öyleyse, 'python3' için tüm sınıf materyallerini değiştirmeye başlamalıyım =) – alvas

+0

Evet, muhtemelen. 2.x'ten 3.x'e daha kolay geçiş yapar, ancak 3.x ile başlıyorsanız, bunu daha da karmaşık hale getirmeye gerek yoktur. –

cevap

16

Durum:

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

Bu yerleşik açık() işlevi için bir takma ad.

ve (yerleşik açık) ve ilgili io modülü kodlanmış metin dosyaları ile çalışmak için bir yaklaşım tavsiye edilir iken

bu modül [yani ikili dosyaları

(kalın ve italik benim düzenlemelerdir)