【发布时间】:2017-04-03 20:09:11
【问题描述】:
下面我在代码中包含了我当前的尝试,其中列出了整个文件夹、运行文件并下载它们。但是,此方法不支持遍历子文件夹和文件夹。
def handleDownload(block):
file.write(block)
ddir='U:/Test Folder'
filedestination = 'U:/SWEModelConstruction/UnmaskedData'
t1= []
t2= []
t3= []
os.chdir(ddir)
ftp = FTP('sidads.colorado.edu')
ftp.login()
print ('Logging in.')
directory = '/pub/DATASETS/NOAA/G02158/unmasked/'
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:
if filename not in ['.', '..']:
#Parse values from filename to use in os.path.join
for fname in filenames:
t1 = fname[16:20]
t2 = fname[20:22]
t3 = fname[22:24]
t4 = fname[16:24]
if not t1: continue
#use parsed values from filenamee to create folder and file pathss
local_folder = os.path.join(filedestination, t1,t2,t3)
local_filename = os.path.join(filedestination, t1,t2,t3,filename)
local_dat = os.path.join(filedestination, t1,t2,t3,'zz_ssmv11034tS__T0001TTNATS'+t4+'05HP001.dat.gz')
local_hdr = os.path.join(filedestination, t1,t2,t3,'zz_ssmv11034tS__T0001TTNATS'+t4+'05HP001.Hdr.gz')
hdrfile = ('zz_ssmv11034tS__T0001TTNATS'+t4+'05HP001.Hdr')
print (local_folder)
print (local_filename)
#check if folder for file exists and wether or not you have already it
if os.path.exists(local_folder) and not os.path.isfile(local_filename):
with open(local_filename, 'wb') as f_output:
ftp.retrbinary('RETR '+ filename, f_output.write)
ftp.quit()
【问题讨论】:
-
做一个每次找到目录时递归调用自己的函数
标签: python download ftp iterator