I wanna read first 188 bytes from a binary file, and check whether the first character is 0x47
. Code below:
import os
fp=open(\"try.ts\",\"rb\")
for
- What's the type of a return value in read() function?
You mean the method read
of type file
. The command help(file.read)
gives:
read([size])
-> read at most size bytes, returned as a string.If the size argument is negative or omitted, read until EOF is reached. Notice that when in non-blocking mode, less data than what was requested may be returned, even if no size parameter was given.
- How can I get the first character in a string or array?
Just like you did, [0]
.
if buf[0]=="\x47":
IndexError: string index out of range
That means your buf
is empty. You overwrote it 100 times in your loop. The file probably doesn't have 18800 bytes in it. At the end of a file read
just returns an empty string. Did you mean to put your if
inside the for
? If so, indent it accordingly.