2

你能告诉我 execfile 和 subprocess 有什么区别吗?我猜这两个命令的工作方式相同。

但是当我使用 Execfile() 从另一个 .py 文件获取变量时没有问题。但是当我尝试使用 subprocess.Popen() 时出现类似“NameError: global name 'xy' is not defined”的错误

什么提供得到那个错误?以及为什么当我使用给出错误的 Popen 命令并且 execfile 工作正常时..

4

1 回答 1

1

execfilepopen是非常不同的命令。

Execfile 允许拉入另一个 python 文件并在与主脚本相同的环境中运行它。

Popen 允许您生成任何您喜欢的子进程,而不仅仅是 python。这是一个“黑匣子”,因此您看到其中发生的事情的机会仅限于它发布的退出值,或者扫描它的 STDERR 和 STDOUT

如果您真的想独立运行第二个脚本,请使用 popen)

如果您想导入其他 python 代码并将其嵌入到您的文件中(如果必须,请使用 execfile)。

于 2017-09-25T10:41:20.947 回答