43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
|
def write_file():
|
|
"""
|
|
Écrire un fichier binaire très simple.
|
|
|
|
En Python, on ne peut pas tout simplement écrire des chaînes dans un
|
|
fichier dit binaire. Dans Python 3, on fait la différence entre binaire et texte.
|
|
Quand on manipule des fichiers texte, on peut y écrire des données `str`.
|
|
Par contre, quand on manipule des fichiers binaires, on manipule des données plus
|
|
brutes, de type `bytes` (ou `bytearray`)
|
|
|
|
"""
|
|
f = open("demo.bin", "wb")
|
|
f.write(bytearray([32, 33, 34, 35, 36, 37, 38, 39, 40])) # (9)
|
|
f.write(b"Bonjour les amis") # (16) ça passe car les caractères sont ASCII et leur code tient dans un byte
|
|
f.write("Bonjour les héros, ça va bien ?".encode("utf-8")) # (33)
|
|
f.close()
|
|
|
|
|
|
def read_file():
|
|
"""
|
|
Lire dans un fichier binaire très simple.
|
|
|
|
"""
|
|
f = open("demo.bin", "rb")
|
|
tableau = f.read(9)
|
|
chaine1 = f.read(16)
|
|
chaine2 = f.read(33).decode("utf-8")
|
|
f.seek(0)
|
|
data = f.read()
|
|
f.close()
|
|
# Afficher les données lues dans le fichier
|
|
print(tableau)
|
|
print(chaine1)
|
|
print(chaine2)
|
|
# Pour tester, revenir au début du fichier et tout lire d'une traite
|
|
print(data)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
write_file()
|
|
read_file()
|