开发者

subprocess popen + curl + binary data

开发者 https://www.devze.com 2022-12-17 09:46 出处:网络
The following statement works as expected: os.system(\"curl --data-binary \\@\"+input_file_path+\" -o \"+ file_name +\" localhost:30\")

The following statement works as expected:

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

But when 开发者_如何学Gotrying it with subprocess.popen:

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

Curl seems to hang up(logs into endless loop), like if the input file is not passed to it(which is mandatory for localhost:30 to function properly)...

Any ideas?


how about using a library instead of calling system's curl?


You could try using the original string in subprocess.Popen with the additional keyword argument to Popen of shell=True:

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


How about using requests library

Python POST binary data

Or yet another

Check out this link for binary (image file) case How to download image using requests

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号