Использование wget с подпроцессом

1

Я пытаюсь использовать 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.

Можете ли вы мне помочь?

Спасибо;)

  • 1
    просто используйте libcurl
  • 1
    почему бы не использовать urllib или httplib?
Показать ещё 2 комментария
Теги:
subprocess

2 ответа

4
Лучший ответ

У вас должны быть дефисы, а location должен быть просто еще одним аргументом:

args = ['wget', '-r', '-l', '1', '-p', '-P', location, url]
  • 0
    А какие пробелы? Все эти строки в одинарных кавычках могут быть объединены без пробелов между ними.
  • 0
    @adam: я так не думаю
Показать ещё 2 комментария
0

Изменить: popen от os намеревается заменить 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)

Сообщите мне, если я что-то упустил.

спасибо!

  • 0
    Документы говорят: аргументы должны быть строкой или последовательностью аргументов программы.
  • 0
    subprocess.Popen следует использовать вместо os.popen
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню