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)

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

Reply via email to