如何将指定curl命令转为等价Python代码,求相关转换教程
curl转Python等价实现(重点讲解-T参数对应写法)
1. -T参数的作用
curl命令中的-T参数全称是--upload-file,作用是读取指定本地文件的二进制内容,直接作为请求的请求体发送,你给出的示例中就是把本地mp4文件作为PUT请求的body上传到目标S3地址。
2. 完整等价Python代码
我们使用Python常用的requests库实现,代码如下:
import requests # 配置参数 file_path = "/Users/kenh/Downloads/amazing_race.mp4" target_url = "https://hootsuite-video.s3.amazonaws.com/production/3563111_6923ef29-d2bd-4b2a-a6d2-11295411c988.mp4?AWSAccessKeyId=AKIAIHSDDN2I7V2FDJGA&Expires=1465846288&Signature=3xLFijSn02YIx6AOOjmri5Djkko%3D" headers = { "Content-Type": "video/mp4", "Content-Length": "8036821" } # 流式上传文件(大文件也不会占用过多内存,和curl -T效果完全一致) with open(file_path, "rb") as f: response = requests.put(target_url, headers=headers, data=f) # 可选:打印返回结果验证 print(response.status_code) print(response.text)
注意:使用前需要先安装requests库,执行命令
pip install requests即可。
3. curl转Python的通用映射规则
你可以对照以下规则手动完成大部分curl命令的转换:
-X [请求方法]:对应requests库的同名方法,比如-X PUT对应requests.put()-H [请求头]:所有请求头整理为字典,传给headers参数-d [表单/字符串参数]:传给data参数-T [本地文件路径]:以二进制读模式打开文件,将文件对象传给data参数即可--form [表单文件]:对应files参数,适用于multipart/form-data类型的上传
内容的提问来源于stack exchange,提问作者Naqi
相关产品推荐
相关产品推荐

