子进程 Popen + curl + 二进制数据
下面这段代码运行得很正常:
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
那要不试试用一个库,而不是直接调用系统里的curl呢?
2
你可以试着在使用 subprocess.Popen
的时候,把原始字符串放进去,并加上一个额外的参数 shell=True
:
subprocess.Popen("curl --data-binary \@"+input_file_path+" -o "+ file_name +" localhost:30",
stdout=subprocess.PIPE,
shell=True)