Newbie question...

Tim Leslie tim.leslie at gmail.com
Tue Sep 30 07:07:14 CEST 2008


On Tue, Sep 30, 2008 at 12:04 PM, Ken D'Ambrosio <ken at jots.org> 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")
# free is now a string, representing the output from the "free" command

for line in free:
  print line,

This isn't doing what you think. Since free is a string, when you
iterate over it, you get a single character each time, so your line
variable isn't actually a line of the output, but a single character.
When you run "print line," this prints the character, followed by a
space. The comma at the end of the print statement tells it to put a
space after the output rather than a newline.

What you probably wanted to do is split up your output on the newline character.

for line in free.split("\n"):
    print line

Of course, your string already has all the newlines it needs in it, so
if all you want is to see the output of the "free" command you can
just do:

print free

HTH,

Tim

>
> 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
>



More information about the Python-list mailing list