Windows系统下如何传入文件路径并用Python代码调用POST API
问题原因
你的代码报错是因为类Unix系统(Ubuntu)和Windows的绝对路径格式不兼容:
- Ubuntu的绝对路径以
/开头,盘符被挂载为目录,所以带前置/的路径可以正常识别 - Windows的绝对路径以
盘符:开头,你写的路径最前面多了冗余的/,系统无法解析该路径,就会抛出找不到文件的错误
解决方案
1. 快速修复
直接删除路径开头的/即可,Windows原生支持正斜杠作为路径分隔符,无需额外转义反斜杠:
import requests url = 'https://api' # 删掉路径开头的/即可 files=[('file',('image.png',open('C:/Users/Swarnitha/Downloads/image.png','rb'),'image/png'))] response = requests.post(url, files=files)
2. 跨平台兼容方案(推荐)
使用Python3.4+内置的pathlib模块处理路径,自动适配Windows、Linux、macOS的路径格式,同时建议用with上下文管理器打开文件,避免文件资源泄漏:
import requests from pathlib import Path url = 'https://api' # 自动适配当前系统的路径格式,无需手动处理斜杠、盘符 img_path = Path.home() / "Downloads" / "image.png" with open(img_path, 'rb') as f: files=[('file',('image.png', f, 'image/png'))] response = requests.post(url, files=files)
这种写法在Ubuntu和Windows系统中都可以正常运行,不需要针对系统做额外修改。
内容的提问来源于stack exchange,提问作者Swarnitha
相关产品推荐
相关产品推荐

