Initial commit
This commit is contained in:
42
source/08-text-files/fileuse/binaryfile.py
Normal file
42
source/08-text-files/fileuse/binaryfile.py
Normal file
@ -0,0 +1,42 @@
|
||||
|
||||
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()
|
Reference in New Issue
Block a user