从FTP服务器自动获取前面一天的数据记录文档

本文介绍了一种通过Python脚本自动从FTP服务器获取指定日期数据文件的方法,并提供了完整的代码示例,展示了如何连接服务器、筛选并下载文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从FTP服务器自动获取前面一天的数据记录文档

当我们得到了ftp服务器的ip,useid,password之后,我们就可以从服务器上面获取到符合我们筛选标准的文件了。具体代码如下:

from ftplib import FTP
import os
import datetime
import time

class FTP_OP(object):
	def __init(self, host, username, password, port):
		"""
		初始化ftp
		:param host: ftp主机ip
		:param username: ftp用户名
		:param password: ftp密码
		:param port : ftp端口(默认21)
		"""
		self.host = host
		self.username = username
		self.password = password
		self.port = port
	def ftp_connect(self):
		"""
		连接ftp
		"return:
		"""
		ftp = FTP()
		ftp.set_debuglevel(0) # 不开启调试模式
		ftp.connect(host=self.host, port=self.port) # 连接ftp
		ftp.login(self.username, self.password) # 登录ftp
		return ftp
	
	def download_file(self, ftp_file_path, dst_file_path, temp_ftp_file_name):
		"""
		从ftp下载文件到本地
		:param ftp_file_path: ftp下载文件路径
		:param dst_file_path: 本地存放路径
		:return:
		"""
		buffer_size = 10240 #默认是8192
		ftp = self.ftp_connect()
		# print ftp.getwelcome() # 显示登录ftp信息
		file_list = ftp.nlst(ftp_file_path)
		for file_name in file_list:
			ftp_file = os.path.join(ftp_file_path, file_name)
			file_name = os.path.basename(file_name)
			write_file = os.path.jion(dst_file_path+file_name)
			#print write_file
			if file_name.find(temp_ftp_file_name) > -1 and not os.path.exists(write_file):
				print "file_name:" + write_file
				# ftp_file = os.path.join(ftp_file_path, file_name)
				# write_file = os.path.join(dst_file_path, file_name)
				with open(write_file, "wb") as f:
					ftp.retrbinary('RETR {0}'.format(ftp_file), f.write,  buffer_size)
				f.close()
		
		if __name__ == '__main__':
			# FTP服务器IP
			host = "168.43.6.47"
			# 账号
			username = 'kxxt'
			# 密码
			password = 'Kxxt1234'
			# 端口
			port = '21'
			# 从FTP服务器下载的文件目录
			ftp_file_path = "/rawdata8_2/zfjk/rbdata_pt/"
			# 文件下载到本地存储的目录
			dst_file_path = "E:/ftp文件夹/"
			# 需要下载文件的前缀
			list = ['jjjymx', 'gmjymx', 'jgdbmx', 'hgrzkc']
			# 获取当天的前一天的日期
			now_date = (datetime.date.today() + datetime.timedelta(days = -1)).strftime('%Y%m%d')
			# print(now_date)
			ftp = FTP_OP(host=host, username=username, password=password,  port=port)
			for pre in list:
			#print(pre)
			temp_ftp_file_name = pre + '_' + now_date + '.txt'
			# print temp_ftp_file_name
			try:
				ftp.download_file(ftp_file_path=ftp_file_path, dst_file_path=dst_file_path, temp_ftp_file_name=temp_ftp_file_name)
			except:
				print('异常')
"""

以上可以获取前一天的记录文件,下一步可以设置每日自动获取。
步骤:控制面板 —>大图标 —>管理工具 —>任务计划程序 —> 添加任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值