.net

.net

 

Python 操作FTP

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

 

posted on 2015-05-07 11:42  严杰  阅读(286)  评论(0编辑  收藏  举报

导航