How to save a binary file?

MRAB python at mrabarnett.plus.com
Tue Oct 5 20:03:06 EDT 2010


On 05/10/2010 23:50, hidura at gmail.com wrote:
> I did but the mistake is: Error interpreting JPEG image file (Not a JPEG
> file: starts with 0x5c 0x6e)
> I think the problem is maybe in the binary code here is:
> [snip]
>
> Sorry for the last send.
>  > On Oct 5, 2010 6:18pm, "Jonas H." jonas at lophus.org> wrote:
>  > > On 10/05/2010 11:11 PM, hidura at gmail.com wrote:
>  > >
>  > >
>  > > Hello, how i can save a binary file, i read in the manual in the IO
> area
>  > >
>  > > but doesn' t show how to save it.
>  > >
>  > > Here is the code what i am using:
>  > >
>  > > s = open('/home/hidura/test.jpeg', 'wb')
>  > >
>  > > s.write(str.encode(formFields[5]))
>  > >
>  > > s.close()
>  > >
>  > >
>  > >
>  > >
>  > > So where's the problem? That code should work. Anyway, you want to
> have a look at with-statements.
>  > >
Why are you encoding it? A JPEG file should contain the binary data,
not a textual encoding of its bytes. The error message you got said
that the contents of the file started with a backslash.

If you print out, say, repr(str[ : 10]) you should get something like
'ÿØÿà\x00\x10JFIF'.

Try this instead:

s = open('/home/hidura/test.jpeg', 'wb')
s.write(str)
s.close()

Incidentally, 'str' is a bad name for a variable because it's the name
of the built-in string type.



More information about the Python-list mailing list