subprocess popen + curl +二进制数据

时间:2010-01-14 00:33:57

标签: python curl popen

以下声明按预期工作:

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 个答案:

答案 0 :(得分:3)

如何using a library而不是调用系统的卷曲?

答案 1 :(得分:2)

您可以尝试使用subprocess.Popen中的原始字符串以及Popen shell=True的附加关键字参数:

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