【问题标题】:Denied permissions to download file from Dropbox API in Python拒绝在 Python 中从 Dropbox API 下载文件的权限
【发布时间】:2019-01-10 15:38:30
【问题描述】:

我正在尝试使用他们在 Python 中的库从 Dropbox 下载 CSV 文件,但我在尝试获得能够将其实际导入计算机所需的权限时遇到了相当大的问题。

无论如何我得到的错误信息是这样的:

PermissionError: [Errno 13] Permission denied: 'my_directory'

所以我尝试了我在调查时发现的仅有的两个解决方案:1) 使用 os.chmod() 将目录的模式更改为 '0o777',以及 2) 以管理员身份运行。但即使两者都有,我仍然没有权利将文件写入我的本地计算机。可能还值得注意的是,文件的名称和我尝试将其写入的目录的名称不同。

import os
import dropbox

local_dir = 'absolute_path_to_directory'

os.chmod(local_dir, 0o777)
dbx = dropbox.Dropbox('my_token_here')
dbx.files_download_to_file(local_dir, 'path_to_file_in_dropbox')

我认为以管理员身份运行此类程序并更改目录权限后,我将有权实际将文件下载到其中。但我仍然收到上面提到的 PermissionError。

任何有关可能导致问题的帮助或见解将不胜感激。

【问题讨论】:

  • 为了清楚起见,您能否说明您正在使用的操作系统和 python 版本?
  • 我的python是3.6.4版。我不确定我的操作系统模块,但我确定它高于版本 3。
  • 对不起,我看错了。我正在使用 Windows 10。

标签: python permissions dropbox


【解决方案1】:

根据文档chmod,您只能设置只读标志,所有其他位都将被忽略。但是,这可能不是问题。

查看dropbox forum,您可能缺少“/”以及文件名,而不仅仅是目录。

dbx.files_download_to_file(j, '/'+ j)

根据Greg

在指定要下载的文件时,您确实需要使用完整路径。使用 files_list_folder 和 files_list_folder_continue 将为您提供每个条目,您可以从返回的 (File)Metadata.path_lower 中获取完整路径。 (即,使用entry.path_lower 而不是'/'+entry.name。)

【讨论】:

  • 感谢您的回复!我很欣赏对os.chmod 的深入了解,而且我也已经处理了 Dropbox 文件路径中的“/”。我接受了 Greg 的建议,并尝试使用我要提取的文件的 path_lower 信息(这似乎只是小写路径的一个版本),但无济于事。我仍然遇到权限问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 2012-05-13
  • 2019-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多