web-dev-qa-db-fra.com

Différence entre io.open et open dans python

Dans le passé, il y avait codecs qui a été remplacé par io. Bien qu'il semble préférable d'utiliser io.open, la plupart des cours d'introduction python enseigne toujours open.

Il y a une question avec Différence entre open et codecs.open en Python mais est open un simple type de canard de io.open?

Sinon, pourquoi est-il préférable d'utiliser io.open? Et pourquoi est-il plus facile d'enseigner avec open?

Dans cet article ( http://code.activestate.com/lists/python-list/681909/ ), Steven DAprano dit que le open intégré utilise le io.open dans le backend. Donc, devrions-nous tous refactoriser notre code pour utiliser open au lieu de io.open?

À part la compatibilité descendante pour py2.x, existe-t-il une raison d'utiliser io.open au lieu de open dans py3.0?

25
alvas

Situation en Python3 selon la documentation:

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

Il s'agit d'un alias pour la fonction open () intégrée.

et

Alors que l'ouverture intégrée () et le module io associé sont l'approche recommandée pour travailler avec des fichiers texte encodés, ce module [c'est-à-dire. codecs] fournit des fonctions utilitaires et des classes supplémentaires qui permettent l'utilisation d'une plus large gamme de codecs lorsque vous travaillez avec des fichiers binaires

(gras et italique sont mes modifications)

33
VPfB