How to write pbm file in Python 3?

Chris Rebert clp2 at rebertia.com
Sun Oct 31 00:32:31 EDT 2010


On Sat, Oct 30, 2010 at 9:21 PM, André <andre.roberge at gmail.com> wrote:
> On Oct 31, 1:11 am, Chris Rebert <c... at rebertia.com> wrote:
>> On Sat, Oct 30, 2010 at 8:32 PM, André <andre.robe... at gmail.com> wrote:
>> > I'm trying to create pbm (portable bitmap) files using Python 3 and
>> > have run into a problem.   The example I am using is the Python 2
>> > Mandelbrot program found at
>> >http://shootout.alioth.debian.org/u32/program.php?test=mandelbrot&lan...
>>
>> > When I run it using Python 2 with size=100, I get a file of size 1311
>> > bytes.  This file contains the correct image.
>>
>> > When I run it using Python 3 with the same parameter (and replacing
>> > xrange by range - the only change suggested by 2to3), I get a file of
>> > size 1812 bytes; this file does not contain the right image.
>>
>> > Any help would be much appreciated.
>>
>> Have you tried changing all instances of chr(<whatever>) to
>> bytes([<whatever>]) ?
> Yes, I had.  And I got the following traceback:
>
> Traceback (most recent call last):
>  File "mandel_orig.py", line 39, in <module>
>    main()
>  File "mandel_orig.py", line 30, in main
>    cout(bytes([byte_acc]))
> TypeError: must be str, not bytes

Ah, right. This is the problem of not having Python 3 to test with.
Try also changing:
cout = sys.stdout.buffer.write

Cheers,
Chris
--
http://blog.rebertia.com



More information about the Python-list mailing list