如何使用Python重命名Google Drive文件?调用API报FileNotFoundError
错误根源
FileNotFoundError来自代码中冗余的文件上传逻辑:
MediaFileUpload的作用是读取本地磁盘的文件流,用来替换Google Drive上存储的文件内容,你传入的trying_new_filename_string不是本地真实存在的文件路径,自然触发找不到文件的报错。- 你仅需要修改文件名(属于文件元数据范畴),完全不需要上传文件内容,也不需要调整mimeType参数,多余的逻辑反而触发了错误。
修正代码
只需要传入要修改的文件名字段,调用update接口即可,不需要冗余的文件拉取、上传逻辑:
from apiclient import errors service = build('drive', 'v3', credentials=credentials) file_id = '1TKxcYDzEK3SUjSv6dCMM6WkKRmZwm84SPWVhR1F2DEc' new_file_name = 'trying_new_title' # 替换为你实际需要的新文件名 def rename_drive_file(service, file_id, new_file_name): try: updated_file = service.files().update( fileId=file_id, body={'name': new_file_name}, fields='id, name' # 可选,指定返回的字段,不写则返回默认字段集 ).execute() return updated_file except errors.HttpError as err: print(f"重命名操作失败: {err}") return None # 执行重命名 rename_drive_file(service, file_id, new_file_name)
注意事项
- 仅修改文件元数据(文件名、描述、共享权限等)时,不需要传入
media_body参数,仅在需要替换文件实际内容时,才需要搭配MediaFileUpload读取本地文件上传,此时要确保传入的是本地真实存在的文件路径。 - 调用update接口时不需要提前拉取全量文件信息,body中仅传入需要变更的字段即可,未传入的字段会保留原有值,不会被意外修改。
- 无明确需求不要随意修改
mimeType字段,错误的MIME类型会导致文件无法正常预览、打开。
内容的提问来源于stack exchange,提问作者laosnd
相关产品推荐
相关产品推荐

