使用wget和子进程

时间:2010-01-14 15:14:19

标签: python subprocess

我正在尝试将wget与subprocess一起使用。

我的尝试一直有效,直到我尝试使用以下代码将页面下载到指定目录:

url = 'google.com'
location = '/home/patrick/downloads'
args = ['wget', 'r', 'l 1' 'p' 'P %s' % location, url]

output = Popen(args, stdout=PIPE)

如果我在/home/patrick中运行此代码,我会在index.html而不是/home/patrick中获得/home/patrick/downloads

你能帮助我吗?

谢谢;)

2 个答案:

答案 0 :(得分:4)

你需要有连字符,而location应该只是另一个参数:

args = ['wget', '-r', '-l', '1', '-p', '-P', location, url]

答案 1 :(得分:0)

来自popen

修改 os打算replace os.popen模块。因此,不建议使用os.popen

最初我认为popen来自os

如果您使用popen

中的os
#wget 'http://google.com/' -r -l 1 -p -P /Users/abhinay/Downloads

from os import popen

url = 'google.com'
location = '/Users/abhinay/Downloads'
args = ['wget %s', '-r', '-l 1', '-p', '-P %s' % location, url]

output = popen(' '.join(args))

并使用Popen

中的subprocess
#wget 'http://google.com/' -r -l 1 -p -P Downloads/google

from subprocess import Popen

url = 'google.com'
location = '/Users/abhinay/Downloads'
#as suggested by @SilentGhost the `location` and `url` should be separate argument
args = ['wget', '-r', '-l', '1', '-p', '-P', location, url]

output = Popen(args, stdout=PIPE)

如果我遗失了某些东西,请告诉我。

THX!