我需要运行另一个python脚本,它在我当前使用的脚本中生成数据。我使用subprocess
来运行它:
cmd = 'python /home/usr/script.py arg1 arg2 arg3'
subprocess.Popen(cmd, shell=True)
但是有问题。以前的脚本在'当前目录'中生成了几个目录,这意味着它在目录中运行。我无法修改以前的脚本,因为它不是我的脚本。如何将当前目录设置为我想要获取数据的目录? \n
另一个小问题是,当我运行subprocess.Popen()
时,我的脚本不会结束。我应该以另一种方式运行吗?
答案 0 :(得分:1)
最好的方法是使用subprocess.call
代替(等待和终止,Popen
,而无需相关wait()
创建僵尸进程)并使用cwd=
参数为子进程指定当前目录:
cmd = ['python','/home/usr/script.py','arg1','arg2','arg3']
return_code = subprocess.call(cmd, cwd="/some/dir")
(也将命令作为列表传递,然后删除shell=True
,此处不需要它)