假设有这样的目录结构:
src\
foo1.py
Dir\
foo2.py
当我在foo1.py中使用以下代码时,我在运行时没有问题:
import os
os.chdir("Dir")
exec(open("./foo2.py").read())
os.chdir("..")
但是当我改变它时:
import os
def test():
os.chdir("Dir")
exec(open("./foo2.py").read())
os.chdir("..")
test()
错误诅咒:
Traceback (most recent call last):
File "foo1.py", line 8, in <module>
test()
File "foo1.py", line 5, in test
exec(open("./foo2.py").read())
File "<string>", line 134, in <module>
NameError: name 'resistorLength' is not defined
我缺少什么?
谢谢。
答案 0 :(得分:0)
另一种解决方案是使用批处理脚本在主python文件中运行我的python文件。我做了一个这样的批处理文件:
runFoo2.bat
cd Dir
python.exe foo2.py
cd ..
然后改变了foo1.py以便:
foo1.py
from subprocess import call
def runFoo2():
p = call("runFoo2.bat")
事后一切都很好。