[Tutor] reading complex data types from text file

Christian Witts cwitts at compuscan.co.za
Thu Jul 16 08:08:49 CEST 2009


 Chris Castillo wrote:
> I'm having some trouble reading multiple data types from a single text 
> file.
>
> say I had a file with names and numbers:
>
> bob
> 100
> sue
> 250
> jim
> 300
>
> I have a few problems. I know how to convert the lines into an integer 
> but I don't know how to iterate through all the lines and just get the 
> integers and store them or iterate through the lines and just get the 
> names and store them.
>
> please help.
> ------------------------------------------------------------------------
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>   
You could do it with a list comprehension

 >>> names = []
 >>> numbers = []
 >>> [numbers.append(int(line.strip())) if line.strip().isdigit() else 
names.append(line.strip()) for line in open('test.txt','rb') if 
line.strip()]
[None, None, None, None, None, None]
 >>> names, numbers
(['bob', 'sue', 'jim'], [100, 250, 300])

The list comprehension would unfold to

for line in open('test.txt', 'rb'):
    if line.strip():
        if line.strip().isdigit():
            numbers.append(line.strip())
        else:
            names.append(line.strip())

And from there you can do what you like with the lists.

-- 
Kind Regards,
Christian Witts




More information about the Tutor mailing list