我无法从python中的第一个脚本运行第二个脚本。为了简化我正在做的事情,以下代码说明了我提交的内容
file1.py:
from os import system
x = 1
system('python file2.py')
file2.py:
from file1 import x
print x
麻烦的是,当我运行file1.py x时会一直打印直到被打断。有什么我做错了吗?
答案 0 :(得分:5)
from file1 import x
导入整个文件1。导入后,将对所有内容进行评估,包括system('python file2.py')
。
您可以通过这种方式阻止递归:
if __name__ == "__main__":
system('python file2.py')
这将解决您当前的问题,但是,它似乎没有做任何有用的事情。
您应该选择以下两个选项之一:
如果file2有权访问file1,请完全删除system
调用,直接执行file2。
如果file2无法访问file1,你必须从file1启动file2进程,那么只需通过命令行将参数传递给它,不要从file2导入file1。
system('python file2.py %s' % x)
(或者,更好一点,使用subprocess.call(['python', 'file2.py', x])
)
在file2中,您可以访问x
的值:
x = sys.argv[1]