Python ftp выгрузка файлов и подпапок из каталога

Есть код, который копирует единичные файлы с подкаталогов как добавить, что-бы копировалось с подпапки вереница файлов в локальную папку.

from ftplib import FTP
import os
#create folder//
os.mkdir("D:\\commonupdater1\\")
print('create folder commonupdater1')

os.mkdir("D:\\commonupdater1\\current")
print('create folder current')

os.mkdir("D:\\commonupdater1\\current\\vscandat1000")
print('create folder current')

os.mkdir("D:\\commonupdater1\\current\\vscaneng1000")
print('create folder current')


ftp = FTP('ftp.nai.com')

print(ftp.login())

# Меняем директорию commonupdater2
ftp.cwd('commonupdater2')
data = ftp.retrlines('LIST')
print(data)


# Путь на нашем компьютере где сохранить файл.
out = 'D:\\commonupdater1\\avvdat.ini' 
with open(out, 'wb') as f:
    ftp.retrbinary('RETR ' + 'avvdat.ini', f.write)

out = 'D:\\commonupdater1\\catalog.z' 
with open(out, 'wb') as f:
    ftp.retrbinary('RETR ' + 'catalog.z', f.write)

out = 'D:\\commonupdater1\\oem.ini' 
with open(out, 'wb') as f:
    ftp.retrbinary('RETR ' + 'oem.ini', f.write)

out = 'D:\\commonupdater1\\replica.log' 
with open(out, 'wb') as f:
    ftp.retrbinary('RETR ' + 'replica.log', f.write)

out = 'D:\\commonupdater1\\sitestat.xml' 
with open(out, 'wb') as f:
    ftp.retrbinary('RETR ' + 'sitestat.xml', f.write)


# Меняем директорию current
ftp.cwd('current')
data = ftp.retrlines('LIST')
print(data)
# скачиваем replica.log для current
out = 'D:\\commonupdater1\\current\\replica.log' 
with open(out, 'wb') as f:
    ftp.retrbinary('RETR ' + 'replica.log', f.write)

print('replicalog for currend is copy')
ftp.cwd('vscandat1000')
data = ftp.retrlines('LIST')

filenames = ftp.nlst()

for filename in filenames:
    host_file = os.path.join(
        'D:\\commonupdater1\\current\\vscandat1000', filename
    )

    try:
        with open(host_file, 'wb') as local_file:
            ftp.retrbinary('RETR ' + filename, local_file.write)
    except ftplib.error_perm:
        pass

ftp.quit()

Ответы (0 шт):