Need help on reading line from file into list

bahoo b83503104 at yahoo.com
Tue Apr 3 16:50:35 EDT 2007


On Apr 3, 5:06 pm, Bruno Desthuilliers
<bdesth.quelquech... at free.quelquepart.fr> wrote:
> bahoo a écrit :
>
> > Hi,
>
> > I have a text file containing a single line of text, such as
> > 0024
>
> > How should I read it into a "list"?
>
> You mean ['0024'], or ['0', '0', '2', '4'] ?
>
> > I tried this, but the "join" did not work as expected.
>
> What did you expect ?
>
> help(str.join)
> join(...)
>      S.join(sequence) -> string
>
>      Return a string which is the concatenation of the strings in the
>      sequence.  The separator between elements is S.
>
> > Any
> > suggestions?
>
> Honestly, the first would be to learn to ask questions, and the second
> to pay more attention to what's written in the doc. But let's try :
>
> > infile = open('my_file.txt','r')
> > for line in infile:
> >    line.join(line)
> >    my_list.extend( line )
>
> If you have a single line of text, you don't need to iterate.
>
> file has a readlines() method that will return a list of all lines. It
> also has a read() method that reads the whole content. Notice that none
> of these methods will strip newlines characters.
>
> Also, str has a strip() method that - by default - strip out any
> 'whitespace' characters - which includes newline characters. And
> finally, passing a string as an argument to list's constructor gives you
> a list of the characters in the string.
>
> This is all you need to know to solve your problem - or at least the two
> possible definitions of it I mentionned above.
>
>  >>> open('source.txt').readlines()
> ['0024\n']
>  >>> map(str.strip, open('source.txt').readlines())
> ['0024']
>  >>> open('source.txt').read()
> '0024\n'
>  >>> list(open('source.txt').read().strip())
> ['0', '0', '2', '4']
>  >>>

Thanks, this helped a lot.
I am now using the suggested
map(str.strip, open('source.txt').readlines())

However, I am a C programmer, and I have a bit difficulty
understanding the syntax.
I don't see where the "str" came from, so perhaps the output of
"open('source.txt').readlines()" is defaulted to "str?

Thanks!




More information about the Python-list mailing list