首页 > 解决方案 > Python:在放置请求中合并文件路径

问题描述

我正在开发一个使用请求库并与 Autodesk Forge REST API 通信的项目。在这个项目的一部分中,我必须将文件上传到服务器。我正在使用下面的代码:

url = 'https://developer.api.autodesk.com/oss/v2/buckets/' + BUCKET_NAME + '/objects/' + FILE_NAME
headers = {
'Content-Type' : 'application/octet-stream',
'Authorization' : 'Bearer ' + ACCESS_TOKEN,
}

with open(FILE_NAME, 'rb') as f:
    r = requests.put(url, headers=headers, data=f)

其中 BUCKET_NAME 是存储桶的名称,FILE_NAME 是我要上传的文件的名称。如果我要上传的文件与 python 脚本位于同一目录中,则此代码可以正常工作。但是,有什么方法可以为文件提供 PATH 吗?(例如,当 FILE_NAME 为 /dir1/dir2/dir3/filename.jpg 时,如何使此代码工作)?

标签: pythonpython-requests

解决方案


您可以使用os.path.join创建路径并分配给FILE_NAME,请注意,这仅适用于 linux 系统,因为我们有/路径分隔符

import os

folders = ['dir1','dir2','dir3']
FILE_NAME = os.path.join(*folders, 'filename.jpg')

print(FILE_NAME)

对于更通用的方法,我们可以简单地使用/分隔符连接各个目录和文件名

names = ['dir1','dir2','dir3', 'filename.jpg']

FILE_NAME = '/'.join(names)
print(FILE_NAME)

两种情况下的输出都是

dir1/dir2/dir3/filename.jpg

推荐阅读