Python Ftplib下载zip文件尝试失败([Errno 13]权限被拒绝:';C:\\Users\\kbrab\\Desktop\\2019\\test.zip)

Python Ftplib下载zip文件尝试失败([Errno 13]权限被拒绝:';C:\\Users\\kbrab\\Desktop\\2019\\test.zip),python,ftp,ftplib,Python,Ftp,Ftplib,我一直在尝试设置一个自动python脚本,将文件从远程FTP服务器下载到本地机器。我能够建立连接,导航到目录,但是当我试图下载特定的zip文件时,我得到了一个错误 [Errno 13]权限被拒绝:“C:\Users\kbrab\Desktop\2019\test.zip” 我曾以管理员身份尝试过空闲运行,我还检查了本地路径目录是否已创建并正确。检查其他类似的帖子,这似乎是问题所在。FTP服务器是TLS/SSL隐式加密,python文件在windows虚拟机上运行 def checkKindred

我一直在尝试设置一个自动python脚本,将文件从远程FTP服务器下载到本地机器。我能够建立连接,导航到目录,但是当我试图下载特定的zip文件时,我得到了一个错误

[Errno 13]权限被拒绝:“C:\Users\kbrab\Desktop\2019\test.zip”

我曾以管理员身份尝试过空闲运行,我还检查了本地路径目录是否已创建并正确。检查其他类似的帖子,这似乎是问题所在。FTP服务器是TLS/SSL隐式加密,python文件在windows虚拟机上运行

def checkKindred():
时间=上个月的一天()
打印(时间)
行=[]
ftp_client.cwd('/kinderd/'))
打印(“当前目录:+ftp\u client.pwd())
ftp_client.retrlines('NLST',line.append)
nameCh=(“损耗”+str(时间))
对于行中的行:
如果nameCh==行[:17]:
打印(“找到匹配项”)
打印(行)
文件名=行
解压亲属(文件名、时间)
亲属(姓名、时间):
本地\u path=“C:\\Users\\kbrab\\Desktop”
local_path=os.path.join(local_path,str(time)[:4],“损耗_2019-04-30.zip”)
如果操作系统路径不存在(本地路径):
os.makedirs(本地路径)
尝试:
filenames=ftp_client.nlst()
ftp_client.retrbinary('RETR'+名称,open(本地路径,'wb')。write)
例外情况除外,如e:
打印('从ftp下载失败:'+str(e))
该代码现在正在通过martin的insight工作,并在下面添加了更正的代码:

def亲属(姓名、时间):
本地\u path=“C:\\Users\\kbrab\\Desktop”
local_path=os.path.join(local_path,str(time)[:4])
如果操作系统路径不存在(本地路径):
os.makedirs(本地路径)
filename=os.path.join(本地路径,名称)
文件=打开(文件名为“wb”)
ftp_client.retrbinary(“retr”+名称,file.write)
这将创建一个文件夹
C:\Users\kbrab\Desktop\2019\test.zip

if not os.path.exists(local_path):
    os.makedirs(local_path)
这会尝试将文件夹视为一个文件:

ftp_client.retrbinary('RETR '+name, open(local_path, 'wb').write)      

检查文件夹的权限。设置它,使每个人都有完全的控制权。

那么是什么引发了异常<代码>打开或
重新输入
?显示异常调用堆栈。如果执行
local\u path=os.path.join(local\u path,str(time)[:4],“Attrition\u 2019-04-30.zip”)
,那么文件路径如何为
C:\Users\kbrab\Desktop\2019\test.zip
?调用堆栈并不能真正帮助我们回答我的问题。分开
open
retrbinary
调用。