Dan wrote:

>On Thu, 7 Apr 2005 21:52:11 -0500, [EMAIL PROTECTED] wrote:
>>Python strings always carry their length, and can have embedded NULs.
>>   s.write("\0\1\2\3")
>>should write 4 bytes to the socket 's'.
>
>I'm taking binary data from a database, so it's not really a Python
>string.  Is there an easy way to convert it?

Unless I'm misunderstanding you, you don't need to. It's not that Python normal strings are "encoded" in some special format, it's just that a string object does not make a distrinction between what is traditionally called "text" and "binary data".

Play around with this at a Python prompt to see for yourself. For example:

>>> img = file('foo.jpg', 'rb').read() # use a real image filename though
>>> img[:50]
'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x00H\x00\x00\xff\xdb\x00C\x00
\x05\x03\x04\x04\x04\x03\x05\x04\x04\x04\x05\x05\x05\x06\x07\x0c\x08\x07\x07\x07
\x07\x0f\x0b\x0b\t'
>>>

So, the fact that you're getting the data from a database is probably immaterial.

HTH,
Dave


-- http://mail.python.org/mailman/listinfo/python-list

Reply via email to