Newbie question...
Ken Seehart
ken at seehart.com
Tue Sep 30 08:14:35 EDT 2008
Ken D'Ambrosio wrote:
> First, apologies for such a newbie question; if there's a better forum
> (I've poked around, some) feel free to point it out to me. Anyway, a
> mere 25-odd years after first hearing about OOP, I've finally decided
> to go to it, by way of Python. But this puzzles me:
>
> import commands
> free = commands.getoutput("free")
> for line in free:
> print line,
>
> Gives:
> t o t a l u s e d f r e e
> s h a r e d b u f f e r s c a c h e d
> M e m : 5 1 5 9 9 2 4 6 0 4 5 2
> 5 5 5 4 0
> 0 7 7 5 1 6 9 1 8 8 4
> - / + b u f f e r s / c a c h e : 2 9 1 0 5 2 2
> 2 4 9 4 0
>
> Why are there spaces between everything? And how do I keep it from
> happening? *confused*
>
> Thanks much,
>
> -Ken
> ** Posted from http://www.teranews.com **
> --
> http://mail.python.org/mailman/listinfo/python-list
>
The variable 'free' is a string containing all of the output, not a file
object or a sequence of strings. Therefore, when you iterate free you
iterate a sequence of characters. This is different than the case of
iterating an open file, which would give you a sequence of lines as you
expect.
So ...
print line,
... prints each character followed by a space and no newline.
You can do this instead:
import commands
free = commands.getoutput("free")
print free
- Ken (that's my name too)
More information about the Python-list
mailing list