"Permission denied" 从 FTP 文件夹下载所有文件时出错
"Permission denied" error from downloading all files from FTP folder
到目前为止,我已经从 FTP 站点获得了我需要的文件的名称。请参阅下面的代码。
from ftplib import FTP
import os, sys, os.path
def handleDownload(block):
file.write(block)
ddir='U:/Test Folder'
os.chdir(ddir)
ftp = FTP('sidads.colorado.edu')
ftp.login()
print ('Logging in.')
directory = '/pub/DATASETS/NOAA/G02158/unmasked/2012/04_Apr/'
print ('Changing to ' + directory)
ftp.cwd(directory)
ftp.retrlines('LIST')
print ('Accessing files')
filenames = ftp.nlst() # get filenames within the directory
print (filenames)
我 运行 遇到麻烦的地方是将文件下载到文件夹中。下面的代码是我尝试过的,但是由于在写入文件之前未创建文件,我收到了权限错误。
for filename in filenames:
local_filename = os.path.join('C:/ArcGis/New folder', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)
file.close()
ftp.quit()
这里是错误和回调。
目录列表包括对文件夹的 .
引用(可能还有对父文件夹的 ..
引用)。
你要跳过,不能下载(他们)
for filename in filenames:
if (filename != '.') and (filename != '..'):
local_filename = os.path.join('C:/ArcGis/New folder', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)
file.close()
实际上您必须跳过列表中的所有文件夹。
到目前为止,我已经从 FTP 站点获得了我需要的文件的名称。请参阅下面的代码。
from ftplib import FTP
import os, sys, os.path
def handleDownload(block):
file.write(block)
ddir='U:/Test Folder'
os.chdir(ddir)
ftp = FTP('sidads.colorado.edu')
ftp.login()
print ('Logging in.')
directory = '/pub/DATASETS/NOAA/G02158/unmasked/2012/04_Apr/'
print ('Changing to ' + directory)
ftp.cwd(directory)
ftp.retrlines('LIST')
print ('Accessing files')
filenames = ftp.nlst() # get filenames within the directory
print (filenames)
我 运行 遇到麻烦的地方是将文件下载到文件夹中。下面的代码是我尝试过的,但是由于在写入文件之前未创建文件,我收到了权限错误。
for filename in filenames:
local_filename = os.path.join('C:/ArcGis/New folder', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)
file.close()
ftp.quit()
这里是错误和回调。
目录列表包括对文件夹的 .
引用(可能还有对父文件夹的 ..
引用)。
你要跳过,不能下载(他们)
for filename in filenames:
if (filename != '.') and (filename != '..'):
local_filename = os.path.join('C:/ArcGis/New folder', filename)
file = open(local_filename, 'wb')
ftp.retrbinary('RETR '+ filename, file.write)
file.close()
实际上您必须跳过列表中的所有文件夹。