从另一个脚本运行python脚本永远重复

时间:2015-12-09 00:51:21

标签: python

我无法从python中的第一个脚本运行第二个脚本。为了简化我正在做的事情,以下代码说明了我提交的内容

file1.py:

from os import system
x = 1
system('python file2.py')

file2.py:

from file1 import x
print x

麻烦的是,当我运行file1.py x时会一直打印直到被打断。有什么我做错了吗?

1 个答案:

答案 0 :(得分:5)

from file1 import x导入整个文件1。导入后,将对所有内容进行评估,包括system('python file2.py')

您可以通过这种方式阻止递归:

if __name__ == "__main__":
    system('python file2.py')

这将解决您当前的问题,但是,它似乎没有做任何有用的事情。

您应该选择以下两个选项之一:

  1. 如果file2有权访问file1,请完全删除system调用,直接执行file2。

  2. 如果file2无法访问file1,你必须从file1启动file2进程,那么只需通过命令行将参数传递给它,不要从file2导入file1。

    system('python file2.py %s' % x)

  3. (或者,更好一点,使用subprocess.call(['python', 'file2.py', x])

    在file2中,您可以访问x的值:

    x = sys.argv[1]