2

execfile と subprocess の違いを教えてください。これら2つのコマンドは同じように機能すると思います。

しかし、 Execfile() を使用すると、別の .py ファイルから変数を取得しても問題はありません。しかし、subprocess.Popen() を使用しようとすると、「NameError: グローバル名 'xy' が定義されていません」のようなエラーが発生します。

そのエラーを取得するために提供するものは何ですか? そして、エラーを発生させ、execfileが正常に動作するPopenコマンドを使用すると、なぜ..

4

1 に答える 1

1

execfilepopenは非常に異なるコマンドです。

Execfile を使用すると、Python の別のファイルを取り込み、メイン スクリプトと同じ環境で実行できます。

Popen を使用すると、Python だけでなく、好きなもののサブプロセスを生成できます。これは「ブラックボックス」であるため、その中で何が起こっているかを確認できる可能性は、ポストされた終了値、またはSTDERR と STDOUT のスキャンに制限されます。

2 番目のスクリプトをスタンドアロンで実行したい場合は、popen を使用します)。

他の Python コードをインポートしてファイルに埋め込みたい場合 (必要に応じて execfile を使用してください)。

于 2017-09-25T10:41:20.947 に答える