使用 Python 请求上传文件
尝试使用 Python 请求库上传文件时,用户可能会遇到文件不存在的情况服务器成功接收。这可能会令人沮丧,特别是当其他解决方案缺乏解决问题所需的见解时。
在描述的特定实例中,用户通过使用表单提交来上传文件requests.post() 方法。尽管提供了正确的文件名和内容,但服务器无法识别上传的文件。相反,它报告上传的文件为空。
解决此问题的关键在于正确指定 requests.post() 的文件参数和数据参数方法。上传文件时,必须指定文件名与其内容的映射。在本例中,用户尝试设置文件和数据参数。
使用 Python 请求上传文件的正确方法是使用 files 参数来指定文件的映射。以下是修复该问题的更新代码片段:
import requests url = 'http://nesssi.cacr.caltech.edu/cgi-bin/getmulticonedb_release2.cgi/post' files = {'upload_file': open('file.txt', 'rb')} values = {'DB': 'photcat', 'OUT': 'csv', 'SHORT': 'short'} r = requests.post(url, files=files, data=values)
通过将文件映射放入 files 参数中,请求库将自动处理多部分表单提交,包括设置适当的标头。
在某些情况下,用户可能需要进一步控制文件上传过程。 Python 请求支持各种选项来自定义文件映射,包括提供文件名和内容类型。对于更复杂的场景,例如从文件上传整个 POST 正文,可以使用 data 参数而不使用 files 参数。
通过了解文件和数据的正确用法参数,用户可以使用Python请求成功上传文件。这使得文件上传能够无缝集成到自动化脚本和程序中。
以上是为什么我的 Python 请求文件上传失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!