Python POST请求上传文件及自定义文件名

在进行网络编程时,我们经常需要通过HTTP协议发送POST请求,其中包含文件上传的情况也十分常见。Python提供了丰富的第三方库来处理HTTP请求,其中requests库是一个非常强大而又易用的选择。本文将介绍如何使用requests库进行POST请求,并上传文件并自定义文件名。

1. 安装requests库

在使用requests库之前,我们需要先安装它。可以通过pip命令进行安装:

pip install requests

2. 发送POST请求上传文件

使用requests库发送POST请求非常简单,首先需要导入该库:

import requests

然后,我们可以使用requests.post()方法发送POST请求。在上传文件时,通常需要将文件作为一个file-like对象传递给files参数,并指定Content-Typemultipart/form-data。下面是一个简单的示例代码:

url = "
files = {'file': open('example.txt', 'rb')}
response = requests.post(url, files=files)

在上述代码中,我们创建了一个名为file的文件对象,并使用open()函数打开了一个名为example.txt的文件。需要注意的是,open()函数的第一个参数是文件的路径,可以根据实际情况进行修改。然后,我们将文件对象传递给了files参数,并发送了POST请求。最后,我们可以通过response对象获取服务器的响应。

3. 自定义文件名

默认情况下,如果不进行任何处理,requests库会使用上传文件的原始文件名作为文件名。如果想要自定义文件名,可以将文件对象包装在一个元组中,将文件名作为第二个元素传递给元组。下面是一个示例代码:

url = "
files = {'file': ('custom_name.txt', open('example.txt', 'rb'))}
response = requests.post(url, files=files)

在上述代码中,我们将文件名example.txt替换为了custom_name.txt,并将文件对象和文件名打包在了一个元组中。然后,我们将该元组传递给了files参数,发送了POST请求。

4. 完整示例

下面是一个完整的示例,展示了如何使用requests库进行POST请求上传文件,并自定义文件名:

import requests

url = "
files = {'file': ('custom_name.txt', open('example.txt', 'rb'))}
response = requests.post(url, files=files)

if response.status_code == 200:
    print("文件上传成功!")
else:
    print("文件上传失败!")

在上述代码中,我们首先导入了requests库,然后定义了上传文件的URL和文件对象。接下来,我们发送了POST请求,并根据服务器的响应状态码输出相应的信息。

总结

本文介绍了如何使用requests库进行POST请求上传文件,并自定义文件名。通过使用requests库提供的简洁而强大的API,我们可以轻松地完成这一任务。希望本文对你有所帮助!

参考资料

  • requests库文档: [
  • requests库GitHub仓库: [