Quel est le type de lecture() valeur renvoyée de la fonction?
J'ai envie de lire d'abord 188 octets à partir d'un fichier binaire, et de vérifier si le premier caractère est 0x47
. Le Code ci-dessous:
import os
fp=open("try.ts","rb")
for i in range(100):
buf=fp.read(188)
if buf[0]=="\x47":
print "OK"
fp.close()
Mais elle donne:
if buf[0]=="\x47":
IndexError: string index out of range
Mes questions sont:
- Quel est le type d'une valeur de retour dans
read()
fonction? - Comment puis-je obtenir le premier caractère dans une chaîne ou un tableau?
Vous devez vous connecter pour publier un commentaire.
Cela signifie que votre
buf
est vide. Vous écrasait 100 fois dans la boucle. Le fichier n'a sans doute pas 18800 octets en elle. À la fin d'un fichierread
retourne une chaîne vide. Vouliez-vous dire de mettre votreif
à l'intérieur de lafor
? Si oui, tiret en conséquence.Vous dire la méthode
read
de typefile
. La commandehelp(file.read)
donne:Juste comme vous l'avez fait,
[0]
.