你能告诉我execfile和子进程之间有什么区别吗?我猜这两个命令的工作方式相同。
但是当我使用Execfile()时,从另一个.py文件获取变量没有问题。但是当我尝试使用subprocess.Popen()时会出现类似“”NameError的错误:全局名称'xy'未定义“”
提供错误的原因是什么?为什么当我使用Popen命令给出错误和execfile工作正常..
答案 0 :(得分:0)
Execfile允许拉入另一个python文件并在与主脚本相同的环境中运行它。
Popen允许你生成任何你喜欢的子进程,而不仅仅是python。这是一个“黑盒子”,所以你看到它发生的事情的机会仅限于它发布的退出值,或scanning it's STDERR and STDOUT
如果你真的想独立运行第二个脚本,请使用popen)
如果要导入其他python代码并将其嵌入到文件中(如果必须,请使用execfile)。