Python Language Fichier I / O


Exemple

file n'est plus un nom intégré dans 3.x ( open works).

Les détails internes des E / S de fichiers ont été déplacés vers le module io standard de la bibliothèque, qui est également la nouvelle StringIO de StringIO :

import io
assert io.open is open # the builtin is an alias
buffer = io.StringIO()
buffer.write('hello, ') # returns number of characters written
buffer.write('world!\n')
buffer.getvalue() # 'hello, world!\n'

Le mode fichier (text vs binary) détermine maintenant le type de données produit en lisant un fichier (et le type requis pour l'écriture):

with open('data.txt') as f:
    first_line = next(f)
    assert type(first_line) is str
with open('data.bin', 'rb') as f:
    first_kb = f.read(1024)
    assert type(first_kb) is bytes

Le codage des fichiers texte est locale.getpreferredencoding(False) par défaut sur tout ce qui est renvoyé par locale.getpreferredencoding(False) . Pour spécifier explicitement un codage, utilisez le paramètre de mot-clé encoding :

with open('old_japanese_poetry.txt', 'shift_jis') as text:
    haiku = text.read()