<Python, iPython> 出力の取り込み。

iPythonのコンソールにぺっって出力される結果のキャプチャーcapture方法。

  • その1
    シェルコマンドshell commandをキャプチャー。
    !付きで呼び出したコマンドの結果をオブジェクトに取り込む。
In [110]: ls

In [111]: ls
a  b  c

In [112]: ls -l
total 0
-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 a
-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 b
-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 c

In [113]: c = !ls -l

In [114]: c
Out[114]:
['total 0',
 '-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 a',
 '-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 b',
 '-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 c']

In [115]: c.l
Out[115]:
['total 0',
 '-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 a',
 '-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 b',
 '-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 c']

In [116]: c.n
Out[116]: 'total 0\n-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 a\n-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 b\n-rw-rw-r-- 1 hage hoge 0 Nov 27 00:28 c'

In [117]: c.fields(0)
Out[117]: ['total', '-rw-rw-r--', '-rw-rw-r--', '-rw-rw-r--']

In [118]: c.fields(0)[1]
Out[118]: '-rw-rw-r--'

In [120]: type(c)
Out[120]: IPython.utils.text.SList

マニュアル。

IPython as a system shell — IPython 4.0.0 documentation

  • その2 pythonスクリプトrunさせた結果を取り込む。
In [123]: more d.py
#!/usr/bin/env python

print('aaa')

In [124]: run d.py
aaa

In [125]: %%capture c
   .....: run d.py
   .....:

In [126]: c
Out[126]: <IPython.utils.capture.CapturedIO at 0x2b75a8f54400>

In [127]: c.show()
aaa

マニュアル。

Built-in magic commands — IPython 4.0.0 documentation