如何使用Python将文件上传至pCloud指定文件夹
pCloud Python端上传文件到指定文件夹的实现方法
很多人使用pcloud第三方库时发现uploadfile方法没有直观的路径参数,其实是因为接口的目标位置定位逻辑和常规文件操作不同——它不接受路径字符串作为入参,只通过数字格式的文件夹ID定位目标目录,具体实现步骤如下:
第一步:获取目标文件夹的数字ID
要上传到指定文件夹,首先需要拿到pCloud云端对应目录的唯一数字标识,有两种常用获取方式:- 逐层遍历获取:调用
listfolder接口,传入folderid=0代表从云端根目录开始遍历,匹配对应文件夹名称拿到ID。如果目标文件夹是多层嵌套的,就拿到上一层的文件夹ID后,再次调用listfolder遍历下一级内容,直到定位到最终目标目录:# 获取根目录内容 root_resp = pc.listfolder(folderid=0) # 示例:定位根目录下名为"照片备份"的文件夹ID target_folder = next( item for item in root_resp["metadata"]["contents"] if item["isfolder"] and item["name"] == "照片备份" ) target_folder_id = target_folder["folderid"] - 直接按路径查询:如果知道目标文件夹的完整云端路径,可以直接调用
getfolderid接口一次性拿到对应ID,不需要逐层遍历:# 示例:查询云端路径为"/照片备份/2024旅行"的文件夹ID folder_resp = pc.getfolderid(path="/照片备份/2024旅行") target_folder_id = folder_resp["metadata"]["folderid"]
- 逐层遍历获取:调用
第二步:调用uploadfile时传入目标文件夹ID
拿到目标文件夹的数字ID后,在uploadfile方法调用时新增folderid入参即可指定上传位置,修改后的完整调用示例:from pcloud import PyCloud pc = PyCloud('username','password') # 先拿到目标文件夹的id folder_resp = pc.getfolderid(path="/目标文件夹路径") target_id = folder_resp["metadata"]["folderid"] # 上传文件到指定文件夹 pc.uploadfile(files = ['pics\\img.png'], folderid=target_id)
常见注意事项:
- 不要尝试传入类似
destination="/目标路径"的参数,接口本身没有这个入参,传了也不会生效- 拿到的folderid是纯数字值,不要把文件夹名称当参数传入
- 同一次调用里可以同时传多个本地文件路径,所有文件都会被上传到指定的folderid对应的目录下
内容的提问来源于stack exchange,提问作者Masih Eshraghi
相关产品推荐
相关产品推荐

