python ftp测试

2020-01-13 13:11:24 浏览数 (1)

刚学Python,做的ftp测试

1,简单ftp

vim test.py

#!/usr/bin/env python import time from ftplib import FTP local_dir_update="*****" local_dir_download="*******" remote_host="*.*.*.*" port="21" remote_user="name" remote_passwd="password" ftp=FTP() ftp.set_debuglevel(2) ftp.connect(remote_host,port) ftp.login(remote_user,remote_passwd) print ftp.getwelcome() #ftp.cwd() bufsize = 1024 filename='ha.txt' file_handler = open(filename,'rb') ftp.storbinary('STOR ha.txt',file_handler,bufsize) ftp.set_debuglevel(0) file_handler.close() ftp.quit()

2.稍复杂点

vim myftp.py

#!/usr/bin/env python import time,socket from ftplib import FTP class MyFtp:         def __init__(self,hostaddr,username,password,remotedir='./',port=21):                 self.hostaddr=hostaddr                 self.username = username                  self.password = password                  self.remotedir  = remotedir                  self.port     = port                  self.ftp      = FTP()                  self.file_list = []         def __del__(self):                 self.ftp.quit()         def login(self):                 ftp = self.ftp                 try:                         timeout = 60                         socket.setdefaulttimeout(timeout)  ftp.set_pasv(True)                          print 'connecting %s...' %(self.hostaddr) ftp.connect(self.hostaddr, self.port)  ftp.login(self.username, self.password)                          print 'login is ok'                 except Exception,e:                          print str(e)                 try:  ftp.cwd(self.remotedir)                  except(Exception):                          print 'change dir is failed..'         def put_files(self,filename):                 ftp = self.ftp                 self.filename=filename                 command='STOR ' self.filename                 file_handler = open(self.filename,'rb')                 bufsize=1024 ftp.storbinary(command,file_handler,bufsize)                 print 'upload is ok'                 file_handler.close()         def download_files(self,filename):                 ftp = self.ftp                 self.filename = filename                 command='RETR ' self.filename                 bufsize=1024 ftp.retrbinary(command,open(self.filename,'wb').write,bufsize) if __name__ == '__main__':         remote_host="*******"         remote_user="name"         remote_passwd="*******"         remotedir='./'         port='21'         filename='ha.txt'         f = MyFtp(remote_host,remote_user,remote_passwd,remotedir,port)         f.login() #       f.put_files(filename) #       f.download_files(filename)         a=['ha.txt','ha1.txt','ha2.txt']         for a1 in a:                 f.download_files(a1)         print 'download is ok'

3.与上面配合写的一个,在一个特定目录下的文件执行脚本到服务器上取.zip文件。(工作中用到,才写)

vim download.py

#!/usr/bin/env python import os,time from  myftp import MyFtp file_list=['xxxxxx','xxxxxx,'xxxxxx','xxxxxx','xxxxxx'] local_dir_update="/xxxxxx" local_dir_download="/xxxxxx" a=time.localtime(time.time() 24*60*60) dt=time.strftime('%Y%m%d',a) if os.path.exists(local_dir_download os.sep dt):         print "ok" else:         os.mkdir(local_dir_download os.sep dt)

if __name__ == '__main__':         remote_host="xxxxxx"         remote_user="cxxxxxx"         remote_passwd="xxxxxx"         remotedir=dt         port='21'         filename='ha.txt'         f = MyFtp(remote_host,remote_user,remote_passwd,remotedir,port)         f.login() #       f.put_files(filename) #       f.download_files(filename)         a=os.listdir(local_dir_update)         os.chdir(local_dir_download os.sep dt)         for a1 in a:                 if a1 in file_list:                         f.download_files(a1 ".zip")         print 'download is ok'

0 人点赞