我需要用Python连接到FTP服务器,并从五个不同的文件夹中下载今天才出现的所有文件。不需要删除文件。
我刚刚开始学习Python。我们成功连接并下载了所有文件。如何只在今天执行此操作,以便我不会下载昨天等的内容?
import ftplib
import os
ftp = ftplib.FTP('ftpserver.com')
ftp.login('user_ftp','ftp_pass')
ftp.cwd('/test/123')
filenames = ftp.nlst()
for filename in filenames:
host_file = os.path.join(
'C:\\test\\', filename
)
try:
with open(host_file, 'wb') as local_file:
ftp.retrbinary('RETR ' + filename, local_file.write)
except ftplib.error_perm:
pass
ftp.quit()
import ftplib
import os
from datetime import datetime
# Параметры FTP сервера
ftp_host = 'ftp_server'
ftp_user = 'ftp_user'
ftp_password = 'ftp_pass'
# Целевая локальная папка для сохранения файлов
local_folder = 'C:\\test'
def download_files_from_ftp(ftp_folder):
ftp = ftplib.FTP(ftp_host)
ftp.login(ftp_user, ftp_password)
ftp.cwd(ftp_folder)
files = ftp.nlst()
today = datetime.now().date()
for file in files:
file_time = datetime.strptime(ftp.sendcmd('MDTM ' + file)[4:], "%Y%m%d%H%M%S").date()
if file_time == today:
local_filename = os.path.join(local_folder, file)
with open(local_filename, 'wb') as local_file:
ftp.retrbinary('RETR ' + file, local_file.write)
ftp.quit()
# Список папок для загрузки файлов
ftp_folders = ['folder1','folder2','folder3']
# Загрузка файлов из каждой папки
for folder in ftp_folders:
download_files_from_ftp(folder)