documentation on read.encode

MRAB python at mrabarnett.plus.com
Tue Jan 16 15:58:04 EST 2018


On 2018-01-16 19:52, Larry Martell wrote:
> On Tue, Jan 16, 2018 at 2:35 PM, Gene Heskett <gheskett at shentel.net> wrote:
>> On Tuesday 16 January 2018 14:19:38 Larry Martell wrote:
>>
>>> On Tue, Jan 16, 2018 at 12:00 PM, Larry Martell
>> <larry.martell at gmail.com> wrote:
>>> > Looking for 2.7 docs on read.encode - googling did not turn up
>>> > anything.
>>> >
>>> > Specifically, looking for the supported options for base64, and how
>>> > to specify them, e.g. Base64.NO_WRAP
>>>
>>> So I just realized that encode() is not a method of read() it's a
>>> string method. But I still have the same question - can I pass in any
>>> flags?
>>>
>>> My issue is that I am base64 encoding PNG images on linux and it's
>>> putting a LF at the end of each line. If I do the same on Windows it's
>>> putting CR/LF. I want the files to be encoded with no platform
>>> dependences. Googling I found mention of Base64.NO_WRAP and I want to
>>> pass that into encode() - can I do that?
>>
>> Di you not have the manpages installed?
>>
>> In my copy of the manpage:
>> base64 [OPTION]... [FILE]
>> where option is:
>>  -w, --wrap=COLS
>>               wrap encoded lines after COLS character (default 76).  Use
>> 0 to disable line wrapping.
>>
>> Seems pretty simple.
> 
> But how do I use that in read().encode('base64')?
> 
Use the base64 module instead, which is also how you would do it in 
Python 3.

If you're getting CR/LF on Windows, that's because you're opening the 
file in text mode. In both Python 2 and Python 3 the base64 string will 
be a bytestring, which you'd write out to a file opened in binary mode.

That's an extra bit of future-proofing! :-)

---
This email has been checked for viruses by AVG.
http://www.avg.com




More information about the Python-list mailing list