本文目的:利用Python中默认安装的ftplib模块定义的FTP类,实现文件上传、下载,以及获取FTPServer端文件信息。
一、FTP相关命令
- FTP连接登录
from ftplib import FTP #加载ftp模块
ftp=FTP() #定义实例对象
ftp.set_debuglevel(0) #关闭调试模式
ftp.connect("host","port") #连接的ftp sever和端口
ftp.login("user","password")#连接的用户名,密码
print(ftp.getwelcome()) #打印出欢迎信息
ftp.cmd(remotepath) #更改远程目录
ftp.close() #退出ftp
- FTP下载
bufsize=1024 #设置的缓冲区大小
#接收服务器上文件并写入本地文件
with open(filename,"wb") as fid:
ftp.retrbinaly("RETR " + filename,fid.write,bufsize)
- FTP上传
bufsize=1024 #设置的缓冲区大小
#接收服务器上文件并写入本地文件
with open(filename,"rb") as fid:
ftp.storbinaly("STOR " + filename,fid,bufsize)
- 文件清单
ftp.dir(remotepath) #显示目录下所有目录信息,支持通配符
ftp.nlst(remotepath) #返回目录下的文件列表,支持通配符
- 文件增删改
ftp.mkd(pathname) #新建远程目录
ftp.rmd(dirname) #删除远程目录
ftp.delete(filename) #删除远程文件
ftp.rename(oldname, newname) #将oldname修改名称为newname
二、FTP方法
1. ftp获取文件修改时间两种方法
- 通过
ftp.sendcmd('mdtm ' + filename)
返回’213 20200407031112’ - 通过dateutil.parser.parse
dateutil.parser模块介绍
>>> import dateutil.parser
>>> dateutil.parser.parse("Jan 20 15:04").strftime("%Y%m%d%H%M%S")
'20200120150400'
2. dir获取文件信息列表
创建一个空列表,用于存储文件信息。
filelist = []
ftp.dir(path, filelist.append)
for i in filelist:
j = i.split()
j[4]对应文件大小
j[5:8]对应文件时间
j[8]对应文件名