【问题标题】:Downloading a file using the Dropbox Python library使用 Dropbox Python 库下载文件
【发布时间】:2022-01-25 11:09:46
【问题描述】:

环境:Windows 7、Python Tools for Visual Studio、Python 2.7、Python Package dropbox(6.9.0)、来自我的 Dropbox 帐户的访问令牌

运行以下代码:

    import dropbox
    access_token = '<token value here>'
    dbx = dropbox.Dropbox(access_token)

    with open("C:\Test.txt", "w") as f:
        metadata, res = dbx.files_download(path="/Test.txt")
        f.write(res.content)

它在最后一行出现以下错误: “无法拆卸”

我不明白不是 Python 开发人员的错误。该文件是在本地计算机上创建的,但没有从 Dropbox 文件下载到其中。

任何帮助将不胜感激..谢谢

【问题讨论】:

  • 它看起来与您的代码无关,但是对于 Visual Studio,很遗憾在这种情况下我无法帮助您。无论如何,如果您想下载文件,可以尝试files_download_to_file
  • 刚刚运行了代码,效果很好,正如 Ceppo93 所说,可能的问题出在您的编辑器/调试器上。
  • 感谢大家的快速和正确的响应。你们都在现场。在 Visual Studio 调试器中更改了断点,它工作得很好。再次感谢!!

标签: python dropbox


【解决方案1】:

使用业务 API 进行 Dropbox 下载的 Python 代码:

def dropbox_file_download(access_token,dropbox_file_path,local_folder_name):
try:
    dropbox_file_name = dropbox_file_path.split('/')[-1]
    dropbox_file_path = '/'.join(dropbox_file_path.split('/')[:-1])
    dbx = dropbox.DropboxTeam(access_token)
    # get the team member id for common user
    members = dbx.team_members_list()
    for i in range(0,len(members.members)):
        if members.members[i].profile.name.display_name == logged_user_name:
            member_id = members.members[i].profile.team_member_id
            break
    # connect to dropbox with member id
    dbx = dropbox.DropboxTeam(access_token).as_user(member_id)
    # list all the files from the folder
    result = dbx.files_list_folder(dropbox_file_path, recursive=False)
    #  download given file from dropbox
    for entry in result.entries:
        if isinstance(entry, dropbox.files.FileMetadata):
            if entry.name == dropbox_file_name:
                dbx.files_download_to_file(local_folder_name+entry.name, entry.path_lower)
                return True
    return False
except Exception as e:
    print(e)
    return False

【讨论】:

    【解决方案2】:
    import dropbox
    access_token = '**********************'
    dbx = dropbox.Dropbox(access_token)
    f = open("ABC.txt","w")                    
    metadata,res = dbx.files_download("abc.txt")     //dropbox file path
    f.write(res.content)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      相关资源
      最近更新 更多