我想从二进制文件中读取前188个字节,并检查第一个字符是否为0x47.代码如下:
import os
fp=open("try.ts","rb")
for i in range(100):
buf=fp.read(188)
if buf[0]=="\x47":
print "OK"
fp.close()
Run Code Online (Sandbox Code Playgroud)
但它给出了:
if buf[0]=="\x47":
IndexError: string index out of range
Run Code Online (Sandbox Code Playgroud)
我的问题是:
read()功能中返回值的类型是什么?if buf[0]=="\x47":
IndexError: string index out of range
Run Code Online (Sandbox Code Playgroud)
这意味着你buf是空的.你在循环中把它覆盖了100次.该文件可能没有18800个字节.在文件的末尾read只返回一个空字符串.你的意思是把你的if内心for?如果是这样,请相应缩进.
- read() 函数的返回值是什么类型?
read你指的是 type 的方法file。该命令help(file.read)给出:
read([size])-> 最多读取 size 个字节,以字符串形式返回。如果大小参数为负数或被省略,则读取直到达到 EOF。请注意,在非阻塞模式下,即使没有给出大小参数,返回的数据也可能少于请求的数据。
- 如何获取字符串或数组中的第一个字符?
就像你所做的那样,[0]。
| 归档时间: |
|
| 查看次数: |
11626 次 |
| 最近记录: |