python sargeまとめ

2137 ワード

Sarge
基本情報
  • 文書:http://sarge.readthedocs.io/en/latest/overview.html
  • ギthub:https://github.com/vsajip/sarge
  • 基本的な使い方
    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.run
    In [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_ぼん