Read binary file and dump data in

Albert Hopkins marduk at letterboxes.org
Tue Jan 13 21:18:37 CET 2009


On Tue, 2009-01-13 at 12:02 -0800, Santiago Romero wrote:
> Hi.
> 
>  Until now, all my python programs worked with text files. But now I'm
> porting an small old C program I wrote lot of years ago to python and
> I'm having problems with datatypes (I think).
> 
>  some C code:
> 
>  fp = fopen( file, "rb");
>  while !feof(fp)
>  {
>     value = fgetc(fp);
>     printf("%d", value );
>  }
> 
>  I started writing:
> 
>  fp = open(file, "rb")
>  data = fp.read()
>  for i in data:
>    print "%d, " % (int(i))
> 
>  But it complains about i not being an integer... . len(data) shows
> exactly the file size, so maybe is a "type cast" problem... :-?
> 

int() expects something that "looks like" an integer.  E.g.

int(2)   => 2
int(2.0) => 2
int('2') => 2
int('c') => ValueError

If you are reading arbitrary bytes then it will likely not always "look"
like integers. What you probably meant is:

for i in data:
   print "%d, " % ord(i)

But if you are really dealing with C-like data structures then you might
be better off using the struct module.

-a





More information about the Python-list mailing list