J'essaye de lire un fichier en python en binaire. Im intéressé par quatre octets à la fois, mais je semble être coincé dans la tristement célèbre en boucle:Python, EOF binaire
with open(filename, "rb") as file:
while file:
file.read(4)
print "EOF"
J'ai essayé ce depuis une heure, je n'arrive à la fin du fichier, même dans de minuscules fichiers texte. J'ai fait un "print test = file.read (4)" seulement pour voir qu'il imprime ""
Comment puis-je m'assurer qu'il s'arrête? Ma première idée était de faire une déclaration if disant si file.read (4) (dans une variable) == "" {4} ou quelque chose, mais cela pourrait effectivement apparaître dans un fichier, non? donc ça pourrait potentiellement s'arrêter au milieu.
La seule autre option est-elle de calculer au préalable la taille du fichier?
'fichier' ne sera jamais' Falsy'. 'while file' devrait être' while true' –
@ Jean-FrançoisFabre, Merci pour le pointage. Je mets à jour le code en conséquence. BTW, même avant le changement, le code devrait fonctionner à cause de «si ... pause» – falsetru
Brillant! Merci beaucoup – user7430676