让我用一个例子解释我的问题:
我有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.call
与wait
,subprocess.Popen
进行沟通,但我无法正确使用。
即使迭代次数为10,它也不会生成10个文件夹。虽然在script2.py中更改了参数,但script3.py使用旧参数生成文件夹名称。
我在Windows机器上使用Python 3.3进行此操作。
任何可能解决方案的指示或我可能正在做的任何错误?
答案 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 强>