¿Cuál es el tipo de valor de retorno de la función read ()?

Quiero leer los primeros 188 bytes de un archivo binario y comprobar si el primer carácter es0x47. Código abajo:

import os
fp=open("try.ts","rb")
for i in range(100):
  buf=fp.read(188)
if buf[0]=="\x47":
  print "OK"
fp.close()

Pero da:

if buf[0]=="\x47":
IndexError: string index out of range

Mis preguntas son:

¿Cuál es el tipo de valor de retorno enread() ¿función?¿Cómo puedo obtener el primer carácter en una cadena o matriz?

Respuestas a la pregunta(2)

Su respuesta a la pregunta