python上传文件
时间: 2023-10-15 21:28:10 浏览: 35
在Python中,有多种方法可以实现文件上传。其中一种方法是使用requests库。以下是三种常用的上传文件的方法:
第一种方法是使用MultipartEncoder类来上传文件。首先,你需要导入MultipartEncoder类和requests库。然后,使用MultipartEncoder的fields参数来指定要上传的文件,其中包括文件的路径、名称和类型。最后,使用requests.post方法将文件上传到指定的URL,并设置headers为Content-Type为data.content_type。示例代码如下:
```python
from requests_toolbelt import MultipartEncoder
import requests
data = MultipartEncoder(fields={'propertyMessageXml': ('filename', open('D:/123.xml', 'rb'), 'text/xml')})
requests.post(url=url, data=data, headers={'Content-Type': data.content_type})
```
第二种方法是使用urllib3的encode_multipart_formdata函数来上传文件。首先,你需要导入requests库和glob模块。然后,定义一个upload_file函数,该函数接受URL和文件路径作为参数。在函数内部,使用glob.glob方法获取指定路径下的所有文件。然后,使用encode_multipart_formdata函数对文件进行编码并将其作为data参数传递给requests.post方法。最后,返回响应的文本结果。示例代码如下:
```python
import requests
import glob
from urllib3 import encode_multipart_formdata
def upload_file(url=None, path=None, file_path=None):
if path:
for file_path in glob.glob(path + '/*'):
data = {}
data['file'] = (file_path.split("/")[-1], open(file_path, 'rb').read())
encode_data = encode_multipart_formdata(data)
res = requests.post(url, headers={'Content-Type':encode_data<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [python-上传文件的几种方式](https://blog.csdn.net/qdPython/article/details/108886548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [Python如何上传文件?](https://blog.csdn.net/qq_34562959/article/details/121557700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]