Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Lire et écrire un fichier avec Python 2.7 et avec Python 3
- ## Lire et écrire un fichier avec Python 2.7
- ### Ecrire dans un fichier avec Python 2.7
- # 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).
- ### Lire un fichier avec Python 2.7
- # 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 ?
- ### Ecrire à la suite d'un fichier
- # 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
- ## Lire et écrire un fichier avec Python 3
- ### L'encodage en Python 3
- 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).
- #### Convertir des str unicode en bytes: `encode()`
- >>> 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'>
- #### Convertir des bytes en str unicode: `décode ()`
- >>> 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'>
- ### Ecrire un fichier avec Python 3
- 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()
- ### Ecrire à la suite d'un fichier avec Python 3
- 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()
- ### Lire un fichier
- 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
Add Comment
Please, Sign In to add comment