本文实例讲述了Python FtpLib模块应用操作。分享给大家供大家参考,具体如下:
Python之FtpLib模块应用
工厂中有这样的应用场景: 需要不间断地把设备电脑生成的数据文件上传到远程文件存储服务器NAS中。
在python自带的标准库中找到ftplib模块,可以帮助实现文件的上传。
场景功能的实现需要做到以下几点:
给定本地路径,上传范围是否包含子文件夹及其文件
限定或不限定 哪些文件类型的文件,文件名包含哪些字符串的文件
文件上传后,本地是否要保留
扫完一次本地路径,进行下次循环的间隔周期
生成log日志方便查看报错与已上传的文件,日志文件保留多久之后要删除
思路是这样子,以上内容设计成一个config 文件进行管控。
1.config.xml文件设置
10.16.xx.xx
cc
xxx
10
TRUE
30
C:\Users\Administrator\Desktop\TEST\
/DATA/AOI/T1TEST200/
csv
*
TRUE
FALSE
TRUE
80
LogBackupDay日志保留天数
UploadCheck是否开启上传
Loop_Sec 扫描循环周期
LocalDirectory本地路径,结尾必须有路径分隔符
RemoteDirectory远程路径,结尾必须有路径分隔符
FileExtension文件类型,jpg,txt,py,log等等,为*时不限制文件类型
FileNameContain文件名字符串 , 文件名包含哪些字符串的文件,为*时不限制文件名
SubDirectoryCheck子文件夹的文件是否上传
SubDirectoryCreateCheck远程路径是否创建和本地路径一样的文件夹
LocalFileBackupCheck本地文件是否保留
FIleCreateTime扫描本地路径中创建时间为多少个小时内的文件或文件夹
以下是读取config.xml的代码
from xml.dom.minidom import parse
def readConfig():
'''读取上传配置'''
conf=parse(os.getcwd()+os.sep+'config.xml');#config文件与程序放在同一目录
host=conf.getElementsByTagName("ServerIP")[0].firstChild.data
username =conf.getElementsByTagName("UserID")[0].firstChild.data
passwd=conf.getElementsByTagName("Passwd")[0].firstChild.data
logBackupDay=int(conf.getElementsByTagName("LogBackupDay")[0].firstChild.data)
uploadCheck=conf.getElementsByTagName("UploadCheck")[0].firstChild.data
uploadLoopTime=int(conf.getElementsByTagName("Loop_Sec")[0].firstChild.data)
localDir=conf.getElementsByTagName("LocalDirectory")[0].firstChild.data
remoteDir=conf.getElementsByTagName("RemoteDirectory")[0].firstChild.data
fileExtension=conf.getElementsByTagName("FileExtension")[0].firstChild.data
fileNameContain=conf.getElementsByTagName("TxtFileNameContain")[0].firstChild.data
subDirCheck=conf.getElementsByTagName("SubDirectoryCheck")[0].firstChild.data
subDirCreateCheck=conf.getElementsByTagName("SubDirectoryCreateCheck")[0].firstChild.data
backupCheck=conf.getElementsByTagName("LocalFileBackupCheck")[0].firstChild.data
fileCreateTime=int(conf.getElementsByTagName("FileCreateTime")[0].firstChild.data)
conflist=[host,username,passwd,logBackupDay,uploadCheck,uploadLoopTime,
localDir,remoteDir,fileExtension,fileNameContain,
subDirCheck,subDirCreateCheck,backupCheck,fileCreateTime]
return conflist