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()