1 import sys, os, ftplib, socket 2 3 4 CONST_HOST = "FTP服务器地址" 5 CONST_USERNAME = "FTP用户名" 6 CONST_PWD = "FTP密码" 7 8 9 CONST_BUFFER_SIZE = 8192 10 16 17 class FtpHelper(object): 18 ftp = None 19 20 def __init__(self): 21 self.ftp = self.connect() 22 23 def connect(self): 24 try: 25 ftp = ftplib.FTP(CONST_HOST) 26 ftp.login(CONST_USERNAME, CONST_PWD) 27 return ftp 28 except socket.error, socket.gaierror: 29 print("FTP is unavailable,please check the host,username and password!") 30 sys.exit(0) 31 32 def disconnect(self): 33 self.ftp.quit() 34 35 def upload(self, ftppath, filepath): 36 f = open(filepath, "rb") 37 self.ftp.cwd(ftppath) 38 file_name = os.path.split(filepath)[-1] 39 try: 40 self.ftp.storbinary('STOR %s'%file_name, f, CONST_BUFFER_SIZE) 41 except ftplib.error_perm: 42 return False 43 return True 44 45 def download(self, ftppath, filename): 46 f = open(filename, "wb").write 47 self.ftp.cwd(ftppath) 48 try: 49 self.ftp.retrbinary("RETR %s"%filename, f, CONST_BUFFER_SIZE) 50 except ftplib.error_perm: 51 return False 52 return True 53 54 def list(self): 55 self.ftp.dir() 56 57 def find(self, ftppath, filename): 58 self.ftp.cwd(ftppath) 59 ftp_f_list = self.ftp.nlst() 60 if filename in ftp_f_list: 61 return True 62 else: 63 return False 64 65 if __name__ == "__main__": 66 fh = FtpHelper() 67 fh.list()