# coding: utf-8
x = 'salut, ca va ?'
with open ('myfile.txt', 'w') as mf:
mf.write(x)
mf.close()
Attention, avec l'option 'w' , si le fichier existe déjà , tout son contenu est écrasé (effacé et réécrit).
# coding: utf-8
with open ('myfile.txt', 'r') as mf:
y = mf.read()
print y
mf.close()
Résultat dans le shell :
salut, ca va ?
# coding: utf-8
with open ('myfile.txt', 'a') as mf:
mf.write('\n')
mf.write('oui, ca va merci bien')
mf.close()
with open ('myfile.txt', 'r') as mf:
z = mf.read()
print z
mf.close()
Résultat dans le shell :
salut, ca va ?
oui, ca va merci bien
En Python 2.7, les chaînes (str) sont par défaut des arrays d’octets (bytes), et il faut les décoder pour obtenir de l’unicode.
En Python 3, les chaînes (str) sont par défaut de type ‘unicode’, et il faut les encoder pour obtenir un array d’octets (bytes).
>>> ma_chaine = "salut"
>>> type(ma_chaine)
<class 'str'>
>>> ma_chaine_encodee = ma_chaine.encode()
>>> ma_chaine_encodee
b'salut'
>>> type(ma_chaine_encodee)
<class 'bytes'>
>>> ma_chaine_encodee
b'salut'
>>> type(ma_chaine_encodee)
<class 'bytes'>
>>> ma_chaine_decodee = ma_chaine_encodee.decode()
>>> ma_chaine_decodee
'salut'
>>> type(ma_chaine_decodee)
<class 'str'>
Il faut encoder la chaine(str) avant de l'écrire dans le fichier
with open('myfile.txt', 'wb') as mf:
p = """C'est juste un test heé ô alors. """.encode()
mf.write(p)
mf.close()
Il faut encoder la chaine(str) avant de l'écrire dans le fichier
with open('myfile.txt', 'ab') as mf:
mf.write('\n'.encode())
p = """C'est encore un test heé ô alors""".encode()
mf.write(p)
mf.close()
Il faut décoder les bytes pour pouvoir les lire.
with open('myfile.txt', 'rb') as mf:
t = mf.read()
t = t.decode()
Résultat dans le Shell :
>>> print(t)
C'est juste un test heé ô alors. C'est encore un test heé ô alors