在 Python 中,你可以使用 ftplib
库从 FTP 服务器获取文件。为了根据文件日期获取文件,你需要先列出 FTP 服务器上的文件,然后检查每个文件的日期。以下是一个示例,展示如何根据文件日期从 FTP 服务器获取文件。
首先,确保你已经安装了 ftplib
库。ftplib
是 Python 标准库的一部分,因此无需额外安装。
from ftplib import FTP
from datetime import datetime
import os
使用 ftplib.FTP
类连接到 FTP 服务器。
ftp = FTP('ftp.example.com') # 替换为你的 FTP 服务器地址
ftp.login(user='username', passwd='password') # 替换为你的用户名和密码
使用 ftp.nlst()
方法列出目录中的文件,并使用 ftp.sendcmd()
方法获取文件的详细信息。
def get_file_date(ftp, filename):
# 获取文件的详细信息
response = ftp.sendcmd(f'MDTM {filename}')
# 解析日期时间字符串
date_str = response[4:]
file_date = datetime.strptime(date_str, '%Y%m%d%H%M%S')
return file_date
# 列出目录中的文件
files = ftp.nlst()
# 过滤出符合日期条件的文件
target_date = datetime(2023, 10, 1) # 替换为你需要的日期
filtered_files = []
for file in files:
file_date = get_file_date(ftp, file)
if file_date.date() == target_date.date():
filtered_files.append(file)
print("Filtered files:", filtered_files)
使用 ftp.retrbinary()
方法下载符合条件的文件。
def download_file(ftp, filename, local_path):
with open(local_path, 'wb') as local_file:
ftp.retrbinary(f'RETR {filename}', local_file.write)
# 下载符合条件的文件
for file in filtered_files:
local_path = os.path.join('local_directory', file) # 替换为你的本地目录
download_file(ftp, file, local_path)
print(f"Downloaded {file} to {local_path}")
领取专属 10元无门槛券
手把手带您无忧上云