【发布时间】:2020-10-06 18:07:06
【问题描述】:
我的要求是下载最近24小时到达根目录的文件。
下面的代码在子目录中运行(比如说 ftp.cwd("/Landing/") 但在我切换到根目录时触发了错误。
filematch='*.csv'
ftp.cwd("/")
for file_data in ftp.mlsd(filematch):
file_name,meta = file_data
last_modified = datetime.strptime(meta.get("modify"), "%Y%m%d%H%M%S")
if (last_modified) >= now- timedelta(hours=0, minutes=1440):
print(last_modified)
local_filename = os.path.join('C:\\Work\\', file_name)
file = open(local_filename, 'wb')
with open(local_filename, "wb") as file:
ftp.retrbinary(f"RETR {file_name}", file.write)
如果我将 >= 更改为 == 则它在根目录中工作(但在子目录中这两种情况都很好;问题仅在根目录中)
if (last_modified) = now- timedelta(hours=0, minutes=1440):
错误信息:-
文件“C:\ C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\ftplib.py”,第 382 行,在 transfercmd 返回 self.ntransfercmd(cmd, rest)[0] 文件“C:\Program Files \WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\ftplib.py”,第 348 行,在 ntransfercmd resp = self.sendcmd(cmd) 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3 .8.1776.0_x64__qbz5n2kfra8p0\lib\ftplib.py”,第 275 行,在 sendcmd 返回 self.getresp() 文件“C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\ftplib.py” ,第 248 行,在 getresp 中引发 error_perm(resp)ftplib.error_perm: 550 Permission denied。
【问题讨论】:
-
"Permission denied" 表示您无权读取该目录。
-
嗨,当我输入 if (last_modified) == now- timedelta(hours=0, minutes=1440): 但是当我输入 ">=" 而不是 = = 然后只获得权限问题。