シェルでコマンドを打った時の標準出力を扱う方法

使用するモジュール

シェルのコマンドの出力を得るには, commandsモジュールをimportする必要があります.

commandsモジュールの使い方

以下の様なファイルがあるフォルダにいるとして, lsコマンドの出力をpythonで扱いたいとします.


$ ls
file1 file2 file3 file4 file5
            

例えば, 以下のようにすることで, lsの出力を得ることができます.


>>> import commands
>>> files = commands.getoutput('ls')
>>> files
'file1\nfile2\nfile3\nfile4\nfile5'
            

簡単にいえば, commandsモジュールをimportして, commandsモジュールのgetoutput('コマンド名')メソッドを使うことで, 標準出力を扱うことができます. lsコマンドの出力が\nで区切られているので, 例えばlistに入れたいとすると, 以下のようにすることで実現できます.


>>> import commands
>>> files = commands.getoutput('ls')
>>> files
'file1\nfile2\nfile3\nfile4\nfile5'
>>> list = files.split('\n')
>>> list
['file1', 'file2', 'file3', 'file4', 'file5']