file / string problem?
Clarence Gardner
clarence at netlojix.com
Fri Mar 24 10:14:37 EST 2000
Your system being a MS-DOS descendent, you need to be sure to
open files in binary mode if they don't contain text.
f = open('D:\\tmp\\esbdates.hlp', 'wb')
Also, with the code as given, if you get a write error, you won't
see it.
On Thu, 23 Mar 2000, Todd Palmer wrote:
>I new to python and I'm having a problem writing a binary string to a
>file. I'm using the zipfile.py module and getting the data from the
>zip file and writing it to a file object. The string returned from
>the zipfile.read() function is the correct size, but when I write it
>to disk, the file on the disk is the wrong size and corrupted. Any
>ideas? Do I have to do something special with binary data in strings?
>
>Code:
>
>import zipfile
>
>z = zipfile.ZipFile('D:\\tmp\\esbdates.zip')
>try:
> # read the binary data into a string
> S = z.read('esbdates.hlp')
> # note len(S) here returns 362588 which is correct as per
> # zipfile.py AND winzip
> f = open('D:\\tmp\\esbdates.hlp', 'w')
> try:
> f.write(S)
> finally:
> f.close()
> # file size is 365,452 bytes!
>finally
> z.close()
>
>Python 1.5.2
>Platform: Win NT 4.0 SP 5
>
>thanks,
>todd
>--
>The more I learn, the less I know.
>This could take forever.
>
>Todd Palmer
>Developer
>t2palmer at avana.net
More information about the Python-list
mailing list