[Python-ideas] Python 3000 TIOBE -3%

Masklinn masklinn at masklinn.net
Sat Feb 11 18:00:17 CET 2012


On 2012-02-11, at 17:44 , Terry Reedy wrote:

> On 2/11/2012 5:47 AM, Paul Moore wrote:
>> On 11 February 2012 00:07, Terry Reedy<tjreedy at udel.edu>  wrote:
>>>>>  Nor is there in 3.x.
>>> 
>>> I view that claim as FUD, at least for many users, and at least until the
>>> persons making the claim demonstrate it. In particular, I claim that people
>>> who use Python2 knowing nothing of unicode do not need to know much more to
>>> do the same things in Python3.
>> 
>> Concrete example, then.
>> 
>> I have a text file, in an unknown encoding (yes, it does happen to
>> me!) but opening in an editor shows it's mainly-ASCII. I want to find
>> all the lines starting with a '*'. The simple
>> 
>> with open('myfile.txt') as f:
>>     for line in f:
>>         if line.startswith('*'):
>>             print(line)
>> 
>> fails with encoding errors. What do I do?
> 
> Good example. I believe adding ", encoding='latin-1'" to open() is sufficient.

Why not open the file in binary mode in stead? (and replace `'*'` by `b'*'` in
the startswith call)


More information about the Python-ideas mailing list