我在python中从第一个脚本运行第二个脚本时遇到问题.为了简化我正在做的事情,以下代码说明了我提交的内容
file1.py:
from os import system x = 1 system('python file2.py')
file2.py:
from file1 import x print x
麻烦的是当我运行file1.py x时会永远打印直到被打断.有什么我做错了吗?
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]