Question

Quelle est la différence entre fichier et open en Python? Quand devrais-je utiliser lequel? (Disons que je suis en 2.5)

Était-ce utile?

La solution

Vous devriez toujours utiliser open () .

Selon la documentation :

  

Il est préférable d’ouvrir un fichier.   d'utiliser open () au lieu de l'invoquer   constructeur directement. le fichier est plus   adapté aux essais de type (par exemple,   écrire "isinstance (f, file)").

De même, file () a été supprimé depuis Python 3.0.

Autres conseils

Deux raisons: la philosophie python de "Il devrait exister un moyen de le faire" et fichier s'en va.

fichier est le type actuel (en utilisant, par exemple, le fichier ('myfile.txt') appelle son constructeur). open est une fonction fabrique qui renverra un objet de fichier.

En python 3.0, le fichier ne sera plus intégré à implémenté mais implémenté par plusieurs classes de la bibliothèque io (un peu similaire à Java avec des lecteurs tamponnés, etc.)

file () est un type, comme un entier ou une liste. open () est une fonction permettant d'ouvrir des fichiers et renvoie un objet fichier .

Ceci est un exemple du moment où vous devriez utiliser open:

f = open(filename, 'r')
for line in f:
    process(line)
f.close()

Voici un exemple d'utilisation du fichier:

class LoggingFile(file):
    def write(self, data):
        sys.stderr.write("Wrote %d bytes\n" % len(data))
        super(LoggingFile, self).write(data)

Comme vous pouvez le constater, il existe une bonne raison pour l'existence des deux et un cas d'utilisation clair pour les deux.

Sur le plan fonctionnel, les deux sont identiques. open appellera quand même fichier , donc la différence est pour le moment une question de style. La la documentation Python recommande d'utiliser open .

  

Lors de l'ouverture d'un fichier, il est préférable d'utiliser open () plutôt que d'appeler directement le constructeur de fichier.

La raison en est que, dans les versions futures, elles ne sont pas garanties identiques ( open deviendra une fonction usine, qui renvoie des objets de types différents en fonction du chemin qu'il ouvre).

N'utilisez jamais open () pour ouvrir des fichiers. file () est en train d'être supprimé dans la version 3.0 et est obsolète pour le moment. Ils ont eu une sorte de relation étrange, mais file () est en cours, il n’ya donc plus lieu de s’inquiéter.

Ce qui suit est issu de la documentation Python 2.6. [trucs de support] ajouté par moi.

  

Lors de l’ouverture d’un fichier, il est préférable d’utiliser open () au lieu d’appeler directement le constructeur [file ()]. fichier est plus adapté aux tests de type (par exemple, l’écriture est isstance (f, fichier)

Selon M. Van Rossum, même si open () est actuellement un alias pour file (), vous devez utiliser open () car cela pourrait changer à l'avenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top