Ok, ok, there was a mistake in the code.
(Of course, it was done on prupose in order to verify if everybody is aware ;-)
I don't know why it is preferable to compare an object to the object "None" using "is not".
"==" is, IMHO, more simple. Simple is better than complex. So I use "==".

The correct program is:

import urllib2
for line in open("fileName.txt"):
    addr, port  = urllib2.splitport (line)
    print (port == None) and '' or port

or

import urllib2
for line in open("fileName.txt"):
    addr, port  = urllib2.splitport(line)
    if port == None:
        print ''
    else:
        print port


On 3/4/06, Peter Hansen <[EMAIL PROTECTED]> wrote:
Cyril Bazin wrote:
> Your file looks like a list of IP adresses.
> You can use the urllib and urllib2 modules to parse IP adresses.
>
> import urllib2
> for line in open("fileName.txt"):
>     addr, port  = urllib2.splitport(line)
>     print (port != None) and '' or port

Is this what you want to happen when port is None?

>>> port = None
>>> print (port != None) and '' or port
None


I think you're getting caught by the classic and/or trap in Python,
trying to avoid using a simple if statement.

By the way, equality comparison with None is generally a bad idea as
well, so even if the above worked it should be (port is not None) rather
than (port != None).

-Peter

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

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

Reply via email to