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()