2015-11-24 15 views
11

In passato, c'è codecs che è stato sostituito da io. Anche se sembra che sia più consigliabile usare io.open, la maggior parte delle classi introduttive di python insegna ancora open.Differenza tra io.open vs open in python

C'è una domanda con Difference between open and codecs.open in Python ma è open un semplice tipo di anatra di io.open?

In caso contrario, perché è meglio utilizzare io.open? E perché è più facile insegnare con open?

In questo post (http://code.activestate.com/lists/python-list/681909/), Steven DAprano dice che il costruito nel open sta usando il io.open nel backend. Quindi dovremmo tutti refactoring il nostro codice per utilizzare open anziché io.open?

Tranne compatibilità per py2.x, ci sono alcuna ragione per usare io.open anziché open in py3.0?

+1

Partenza 'help (aperti) 'e vedrai che è lo stesso di' io.open() '- anche l'intestazione dice' Aiuto sulla funzione built-in aperta nel modulo io', quindi in altre parole, non c'è motivo di usare 'io. open() 'se stai scrivendo un programma in Python 3. –

+0

@TimPietzcker,' io.open' è solo per compatibilità con le versioni precedenti giusto? Se è così, dovrei iniziare a cambiare tutti i materiali di classe per 'python3' =) – alvas

+0

Sì, probabilmente. Semplifica il porting da 2.x a 3.x, ma se inizi a 3.x, non è necessario renderlo più complicato. –

risposta

16

Situazione in python3 secondo la documentazione:

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

Questo è un alias per la funzione open().

e

Mentre l'apertura built() e il modulo associato io sono il approccio raccomandato per lavorare con file di testo codificati, questo modulo [cioè codec] fornisce le funzioni di utilità aggiuntive e le classi che permettono l'utilizzo di una più ampia gamma di codec quando si lavora con binari file

(grassetto e corsivo sono le mie modifiche)

Problemi correlati