我该如何处理[Errno 13]在python中拒绝的权限

时间:2019-02-14 06:00:35

标签: python django gmail-api

在保存文件时,它会引发以下错误[Errno 13]权限被拒绝

我正在尝试将文件保存在当前工作目录中,但没有保存

file_data = base64.urlsafe_b64decode(i['body']['data'] .encode('UTF-8'))
store_dir = os.getcwd()
path = ''.join([store_dir, i['filename']])
f = open(path, 'w')
f.write(file_data)
f.close()

2 个答案:

答案 0 :(得分:0)

您需要使用:

os.path.join(store_dir, i['filename'])

答案 1 :(得分:0)

如何处理(或...避免?)[Errno 13]权限被拒绝?

简单,将其写入您具有写入权限的路径。

此:

path = ''.join([store_dir, i['filename']])

可能会导致您没有写许可权的路径,@ vks答案是一种使用您的方法获取正确路径的更好方法

os.path.join(store_dir, i['filename'])

,但是...

如果要将文件保存在当前工作目录中...

...您只需要提供文件名,就不需要os了。

file_data = base64.urlsafe_b64decode(i['body']['data'] .encode('UTF-8'))
f = open("filename", 'w')
f.write(file_data)
f.close

但是请注意,执行此脚本的用户(以及您的脚本)必须对该目录具有写权限。