1

PythonのPopenとexecの違いは誰でも説明できますか

exec と Popen を使用してプログラムを動的に実行するという同じタスクを実行できます。

ここのコードは EXEC アプローチを使用していますが、Popen アプローチを使用するとどうなるでしょうか。

code1.py

def runjob(src, job):
    x = "from {src} import *" +  '\n' + "{job}(parm1=)"
    y = x.format(src=src, job=job)
    exec ( 'from ' + src + ' import *' + '\n' + job  + '(10)' )


def main():
    runjob(c:/python27/test_job', 'il')

code2.py

def fl(parm=None):
    print 'function1'
    print parm

def f2(parm=None):
    print 'function 2'
    print parm

def f3(parm=None):
    print 'function 3'
    print parm
4

1 に答える 1

4

execでありPopen、多かれ少なかれ無関係です。


execPythonコードの一部を実行するために使用されます。

このステートメントは、Python コードの動的実行をサポートします。最初の式は、文字列、開いているファイル オブジェクト、またはコード オブジェクトのいずれかに評価される必要があります。文字列の場合、文字列は一連の Python ステートメントとして解析され、実行されます (構文エラーが発生しない限り)。開いているファイルの場合、ファイルは EOF まで解析され、実行されます。


Popen任意のプログラムを実行できるようにするクラスです。

新しいプロセスで子プログラムを実行します。便利な関数ではカバーされないあまり一般的でないケースを開発者が処理できるように、多くの柔軟性を提供します。

他のプログラムを実行できるだけでなく、それらの出力を読んで、作業ディレクトリや新しいターミナルを開く必要があるかどうかなど、多くの便利なオプションを設定することもできます。

于 2012-10-26T13:02:42.027 に答える