подпроцесс popen + curl + двоичные данные - PullRequest
0 голосов
/ 14 января 2010

Следующее утверждение работает как ожидалось:

os.system("curl --data-binary \@"+input_file_path+" -o "+ file_name +" localhost:30")

Но при попытке с subprocess.popen:

Popen(['curl','--data-binary','\@'+input_file_path, '-o', file_name,'localhost:30'], stdout=PIPE).communicate()[0]

Кажется, что Curl зависает (входит в бесконечный цикл), как если бы входной файл ему не передавался (что является обязательным для правильной работы localhost: 30) ...

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 14 января 2010

как насчет , используя библиотеку вместо вызова системного curl?

2 голосов
/ 14 января 2010

Вы можете попробовать использовать исходную строку в subprocess.Popen с дополнительным аргументом ключевого слова для Popen из shell=True:

subprocess.Popen("curl --data-binary \@"+input_file_path+" -o "+ file_name +" localhost:30",
    stdout=subprocess.PIPE,
    shell=True)
...