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

Error closing wget subprocess in Python

我正在 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() 但这也不起作用。 请指教

谢谢!

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

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))

(您也可以将命令行参数与它们的值分组,如果它们有的话)。

使用subprocess.call

import subprocess 

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