1. 背景:
本机要和远程通讯机实时通信,具体为:把本地文件夹下的所有文件上传到FTP服务器,或者从FTP服务器的根目录下载文件到本地。手工操作过于麻烦,参考网上资源,用Python写了一个脚本,实现FTP的文件上传和下载。首先给出本人代码,文末给出参考链接。
2. 代码:
"""
MyFTPUPDownload.py
"""
from ftplib import FTP
import os
import time
import socket
class FTPUpDownLoad:
"""
基于Python实现FTP服务器的各种类型文件自动上传和下载
"""
def __init__(self, host, port=21):
"""
参数
:param host: ip地址或域名
:param port: 端口号,默认21
"""
self.host = host
self.port = port
self.ftp = FTP() # 首先要创建FTP对象
self.ftp.encoding = 'gbk' # 中文编码
self.log_file = open('/home/uos/Desktop/log.txt', 'a') # 日志文件放在桌面,追加方式写入
self.file_list = []
def log_in(self, username, passwd):
"""
用户登陆FTP服务器,已把FTP设置匿名不可访问,因此必须给定用户名和密码
:param username: 用户名
:param passwd: 密码
:return:
"""
try:
time_out = 30
# 登陆时间限制
socket.setdefaulttimeout(time_out)
# 0是主动模式,1是被动模式,被动模式下,不可匿名访问
self.ftp.set_pasv(True)
# 连接到FTP服务器
self.debug_print('开始连接到 %s' % self.host)
self.ftp.connect(self.host, self.port)