Guest User

Untitled

a guest
Feb 19th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. # Lire et écrire un fichier avec Python 2.7 et avec Python 3
  2.  
  3. ## Lire et écrire un fichier avec Python 2.7
  4.  
  5. ### Ecrire dans un fichier avec Python 2.7
  6.  
  7. # coding: utf-8
  8.  
  9. x = 'salut, ca va ?'
  10.  
  11. with open ('myfile.txt', 'w') as mf:
  12. mf.write(x)
  13. mf.close()
  14.  
  15. Attention, avec l'option 'w' , si le fichier existe déjà , tout son contenu est écrasé (effacé et réécrit).
  16.  
  17. ### Lire un fichier avec Python 2.7
  18.  
  19. # coding: utf-8
  20.  
  21. with open ('myfile.txt', 'r') as mf:
  22. y = mf.read()
  23. print y
  24. mf.close()
  25.  
  26. Résultat dans le shell :
  27.  
  28. salut, ca va ?
  29.  
  30. ### Ecrire à la suite d'un fichier
  31.  
  32. # coding: utf-8
  33.  
  34. with open ('myfile.txt', 'a') as mf:
  35. mf.write('\n')
  36. mf.write('oui, ca va merci bien')
  37. mf.close()
  38.  
  39. with open ('myfile.txt', 'r') as mf:
  40. z = mf.read()
  41. print z
  42. mf.close()
  43.  
  44. Résultat dans le shell :
  45.  
  46. salut, ca va ?
  47. oui, ca va merci bien
  48.  
  49.  
  50.  
  51.  
  52. ## Lire et écrire un fichier avec Python 3
  53.  
  54. ### L'encodage en Python 3
  55.  
  56. 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.
  57.  
  58. 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).
  59.  
  60. #### Convertir des str unicode en bytes: `encode()`
  61.  
  62. >>> ma_chaine = "salut"
  63.  
  64. >>> type(ma_chaine)
  65. <class 'str'>
  66.  
  67. >>> ma_chaine_encodee = ma_chaine.encode()
  68.  
  69. >>> ma_chaine_encodee
  70. b'salut'
  71.  
  72. >>> type(ma_chaine_encodee)
  73. <class 'bytes'>
  74.  
  75.  
  76. #### Convertir des bytes en str unicode: `décode ()`
  77.  
  78. >>> ma_chaine_encodee
  79. b'salut'
  80.  
  81. >>> type(ma_chaine_encodee)
  82. <class 'bytes'>
  83.  
  84. >>> ma_chaine_decodee = ma_chaine_encodee.decode()
  85.  
  86. >>> ma_chaine_decodee
  87. 'salut'
  88.  
  89. >>> type(ma_chaine_decodee)
  90. <class 'str'>
  91.  
  92. ### Ecrire un fichier avec Python 3
  93.  
  94. Il faut encoder la chaine(str) avant de l'écrire dans le fichier
  95.  
  96. with open('myfile.txt', 'wb') as mf:
  97.  
  98. p = """C'est juste un test heé ô alors. """.encode()
  99.  
  100. mf.write(p)
  101. mf.close()
  102.  
  103.  
  104. ### Ecrire à la suite d'un fichier avec Python 3
  105.  
  106. Il faut encoder la chaine(str) avant de l'écrire dans le fichier
  107.  
  108. with open('myfile.txt', 'ab') as mf:
  109.  
  110. mf.write('\n'.encode())
  111.  
  112. p = """C'est encore un test heé ô alors""".encode()
  113.  
  114. mf.write(p)
  115. mf.close()
  116.  
  117.  
  118. ### Lire un fichier
  119.  
  120. Il faut décoder les bytes pour pouvoir les lire.
  121.  
  122. with open('myfile.txt', 'rb') as mf:
  123.  
  124. t = mf.read()
  125. t = t.decode()
  126.  
  127. Résultat dans le Shell :
  128.  
  129. >>> print(t)
  130. C'est juste un test heé ô alors. C'est encore un test heé ô alors
Add Comment
Please, Sign In to add comment