(2017/3/21)本記事は「Pythonのsubprocessで外部プロセスの標準入出力と戻り値を扱う」へ移動した。
C:\>python Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import subprocess >>> p= subprocess.Popen(['ver'],shell=True, stdin=subprocess.PIPE ,stdout=subprocess.PIPE) >>> for i in p.stdout.read().split('\n'): ... print i ... Microsoft Windows [Version 6.1.7601] ね。簡単でしょ。 Pythonから別のプロセスを
I’ve managed, at long last, to solve the problem of launching subprocesses from python. I have created a python module which can launch a subprocess, wait for the process with a timeout, and kill that process and all of its sub-subprocesses correctly, on Windows, Mac, and Linux. Source code is here. It requires python 2.4+ because it subclasses the subprocess module. On Windows, it only works on W
Python2.4からの標準ライブラリであるsubprocessではtimeoutを設定することができず、だいぶ探したんだけれども、Benjamin Smedbergのkillableprocessがよいと思う。killableprocess.pyhttp://svn.smedbergs.us/python-processes/trunk/import subprocessをimport killableprocessに書き換えればそのまま使える。単純に外部コマンドを呼ぶ場合は、 from killableprocess import call call(['/bin/date'], timeout=10) timeout引数にタイムアウト秒数を指定。-1の場合はsubprocessと同じようにタイムアウトしない。タイムアウトを設定してffmpegを呼ぶ例。 from subprocess
subprocess モジュールは新しくプロセスを生成して、そのプロセスを扱う一貫したインタフェースを提供します。それは従来からある他のモジュールよりも高レベルなインタフェースを提供します。そして os.system(), os.spawn*(), os.popen*(), popen2.*() や commands.*() のような従来の関数の置き換えを目的としています。 subprocess モジュールと他のモジュールとの比較を分かり易くするために os や popen を使用したサンプルを再作成して紹介します。 subprocess モジュールは Popen とそのクラスを使用する複数のラッパ関数を定義します。 Popen のコンストラクタは新たなプロセス生成を簡単にする複数の引数を受け取り、パイプを経由してその親プロセスと通信します。それは他のモジュールの置き換えられる全ての機能や
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く