在Python中关闭wget子进程时出错

时间:2015-06-28 23:21:25

标签: python subprocess wget

我使用以下代码在Python中使用wget下载文件:

p1 = subprocess.Popen(['wget',
                       '-P', 
                       'path/to/folder','http://www.ncbi.nlm.nih.gov/Traces/wgs/?download=ACHI01.1.fsa_nt.gz'],
                       stdout=subprocess.PIPE)

p1.studout.close()

文件被下载并正确保存在给定文件夹中,但进程仍在运行。我试过p1.kills(),但这也不起作用。 请指教。

谢谢!

2 个答案:

答案 0 :(得分:0)

wait()之后缺少对Popen的调用,以使主进程等待子进程终止..以下代码似乎工作正常:

import subprocess as sp

def main(args):
p1 = sp.Popen(['wget', '-P path',
               'http://www.ncbi.nlm.nih.gov/Traces/wgs/?download=ACHI01.1.fsa_nt.gz'],
               stdout = sp.PIPE)
p1.wait()
return 0

if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv))

(您也可以将命令行参数与其值组合在一起,如果有的话)。

答案 1 :(得分:0)

使用subprocess.call

import subprocess 

subprocess.call (['wget', '-P', '/', 'http://www.ncbi.nlm.nih.gov/Traces/wgs/?download=ACHI01.1.fsa_nt.gz'])