多くの人にとっては簡単なことだと思いますが、私にとってはそうではありません。シェルからデータを出力しようとしていますが、文字列に変換する必要があるときに行き詰まります。で試しましfor
たが、うまくいきませんでした。基本的に、私がしようとしているのは、シェルの新しい行ごとに、新しい行を出力することです。コマンドの例を挙げますfree -m
。その出力は
total used free shared buffers cached
Mem: 144 512 111 0 0 121
-/+ buffers/cache: 23 232
Swap: 0 0 0
だから、私がこれまでに書いたことは次のとおりです。
import commands
foo...
sout = commands.getstatusoutput(inp)
return ' '.join(str(line) for line in sout)
foo...
ただし、出力は1行のみです(最初の行-合計、使用、無料、共有など)
シェルの出力のように、新しい行ごとに新しい行が必要です。.join なしでそのままにしておくと、次のような出力が得られます
(0, ' total used free shared buffers cached\nMem: 512 144 368 0 0 121\n-/+ buffers/cache: 21 234\nSwap: 0 0 0')
文字列にしたいので、 も試してみましたが、 (wtf)'\n'.join
しか出力されませんでした。0
何か案は?