我正在尝试使用他们在Python中的库从Dropbox下载CSV文件,但是我遇到了一个问题,即试图获得将其实际放入计算机所需的权限。
无论如何我得到的错误消息是:
PermissionError:[Errno 13]权限被拒绝:'my_directory'
因此,在研究过程中,我尝试了发现的仅有的两种解决方案:1)使用'0o777'
将目录模式更改为os.chmod()
,以及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。
对于可能导致此问题的原因的任何帮助或见解,将不胜感激。
答案 0 :(得分:0)
根据文档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
。)