本文實例講述了Python FtpLib模塊應用操作。分享給大家供大家參考,具體如下:
Python之FtpLib模塊應用
工廠中有這樣的應用場景: 需要不間斷地把設備電腦生成的數據文件上傳到遠程文件存儲服務器NAS中。
在python自帶的標準庫中找到ftplib模塊,可以幫助實現文件的上傳。
場景功能的實現需要做到以下幾點:
給定本地路徑,上傳范圍是否包含子文件夾及其文件 限定或不限定 哪些文件類型的文件,文件名包含哪些字符串的文件 文件上傳后,本地是否要保留 掃完一次本地路徑,進行下次循環的間隔周期 生成log日志方便查看報錯與已上傳的文件,日志文件保留多久之后要刪除思路是這樣子,以上內容設計成一個config 文件進行管控。
1.config.xml文件設置
<?xml version="1.0"?><Config> <ServerIP>10.16.xx.xx</ServerIP> <UserID>cc</UserID> <Passwd>xxx</Passwd> <LogBackupDay>10</LogBackupDay> <UploadCheck>TRUE</UploadCheck> <Loop_Sec>30</Loop_Sec> <LocalDirectory>C:/Users/Administrator/Desktop/TEST/</LocalDirectory> <RemoteDirectory>/DATA/AOI/T1TEST200/</RemoteDirectory> <FileExtension>csv</FileExtension> <FileNameContain>*</FileNameContain> <SubDirectoryCheck>TRUE</SubDirectoryCheck> <SubDirectoryCreateCheck>FALSE</SubDirectoryCreateCheck> <LocalFileBackupCheck>TRUE</LocalFileBackupCheck> <FileCreateTime>80</FileCreateTime></Config>LogBackupDay 日志保留天數 UploadCheck 是否開啟上傳 Loop_Sec 掃描循環周期 LocalDirectory 本地路徑,結尾必須有路徑分隔符 RemoteDirectory 遠程路徑,結尾必須有路徑分隔符 FileExtension 文件類型,jpg,txt,py,log等等,為*時不限制文件類型 FileNameContain 文件名字符串 , 文件名包含哪些字符串的文件,為*時不限制文件名 SubDirectoryCheck 子文件夾的文件是否上傳 SubDirectoryCreateCheck 遠程路徑是否創建和本地路徑一樣的文件夾 LocalFileBackupCheck 本地文件是否保留 FIleCreateTime 掃描本地路徑中創建時間為多少個小時內的文件或文件夾
以下是讀取config.xml的代碼
from xml.dom.minidom import parsedef 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
新聞熱點
疑難解答