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
精彩评论