从另一个python脚本调用一个python脚本并等待单元执行完成

时间:2014-12-30 15:05:03

标签: python python-3.3

让我用一个例子解释我的问题:

我有script1.py,就像:

script1.py

for (i in range(0,10))
    generate script2.py
    execute(script3.py)

script3.py导入script2.py

我需要做的是生成不同的script2.py 10次,然后执行script3.py。 script3.py生成一个文件夹,将所有文件从所有三个脚本所在的同一文件夹复制到另一个位置。 script2.py中定义了一些参数,script3.py使用这些参数生成文件夹名称,然后将所有文件复制到该文件夹​​。

我尝试使用os.system()subprocess.callwaitsubprocess.Popen进行沟通,但我无法正确使用。

即使迭代次数为10,它也不会生成10个文件夹。虽然在script2.py中更改了参数,但script3.py使用旧参数生成文件夹名称。

我在Windows机器上使用Python 3.3进行此操作。

任何可能解决方案的指示或我可能正在做的任何错误?

1 个答案:

答案 0 :(得分:4)

使用subprocess。示例如下。

import subprocess

for i in range(10):
    generate script2.py

    cmd = ['python', 'script3.py']
    subprocess.Popen(cmd).wait()

    # Python will now wait for script3 to return
    # before going on to the next iteration

<强> Useful documentation here