python sargeまとめ
2137 ワード
Sarge
基本情報文書:http://sarge.readthedocs.io/en/latest/overview.html ギthub:https://github.com/vsajip/sarge 基本的な使い方
sarge.cputure_stdout
捕獲標準出力
基本情報
sarge.cputure_stdout
捕獲標準出力
In [81]: p = capture_stdout("ls -a / | tail -n 1")
In [82]: p.commands
Out[82]: [Command('ls -a /'), Command('tail -n 1')]
In [83]: p.returncode
Out[83]: 0
In [84]: p.returncodes
Out[84]: [0, 0]
In [85]: p.stdout
Out[85]: Capture-2
In [86]: p.stdout.threads
Out[86]: []
In [87]: p.stdout.text
Out[87]: u'\u7528\u6237\u4fe1\u606f
'
In [88]: print p.stdout.text
sarge.cputure_bothはstder\stdoutの合併です。In [121]: from sarge import capture_stdout, run, capture_both
In [122]: a = capture_both("ls -a /ddd | tail -n 2")
In [123]: a.stderr
Out[123]: Capture-7
In [124]: a.stderr.text
Out[124]: u'ls: /ddd: No such file or directory
'
In [125]: a.stdout.text
Out[125]: u''
In [126]: a.returncodes
Out[126]: [1, 0]
sarge.runIn [91]: k = run("ls -a / | tail -n 2")
virtualenvs
In [93]: print k.stdout
None
In [94]: print k.returncodes
[0, 0]
# Capture
>>> from sarge import run, Capture
>>> p = run('echo foo; echo bar; echo baz', stdout=Capture())
>>> p.stdout.readline()
'foo
'
>>> p.stdout.readline()
'bar
'
>>> p.stdout.readline()
'baz
'
>>> p.stdout.readline()
''
# input
In [81]: p = run('cat', input='foo')
foo
非同期実行>>> from sarge import run, Capture
>>> cmd = 'echo foo & (sleep 2; echo bar) & (sleep 10; echo baz)'
>>> p = run(cmd, stdout=Capture(), async=True) # returns immediately
>>> p.close() # wait for completion[ ]
>>> p.stdout.readline()
'foo
'
>>> p.stdout.readline()
'baz
'
>>> p.stdout.readline()
'bar
'
>>>
sarge.get_stder\sarge.get_stdout\sarge.get_ぼん