lanying56123 发表于 2015-5-26 10:01:12

pytnon FTP编程-- ftplib 模块

  pytnon FTP编程:Python自带ftplib 模块,是用来对FTP服务器进行上传、下载操作,非常方便,使用起来也是行简单。
  如果我们熟悉了下面代码编写,怎么把FTP服务器上的文件下载到本地,怎么把文件上传到FTP服务器上和批量FTP上传、下载
  就基本掌握了Python FTP编程。
  



1 #-*- coding:utf-8 -*-
2 #author:lhj588@live.cn
3 #C_Date: 2011.11.17
4 from ftplib import FTP
5 import socket
6 import os
7 #ftp服务器地址
8 ftp_server = '127.0.0.1'
9 #ftp服务器端口
10 ftp_port ='5433'
11 #ftp服务器登录名称
12 user_name = 'lhj588'
13 #ftp服务器登录密码
14 password = '888888'
15
16
17 """
18 描述:描述:简单FTP文件下载
19 """
20 def upload_ftp():
21   ftp = FTP()
22   #打开调试级别2,显示详细信息
23   ftp.set_debuglevel(2)
24   #连接FTP服务器
25   ftp.connect(ftp_server,ftp_port)
26   #登录FTP服务器如果匿名登录则用空串代替即可
27   ftp.login(user_name,password)
28
29   #显示FTP服务器欢迎信息
30   print ftp.getwelcome()
31
32   dir_name = "/mysoft/tool/"
33   #选择要上传文件存放服务器的目录
34   ftp.cwd(dir_name)
35   #设置缓冲块大小
36   buf_size = 1024
37   #文件名称
38   file_name = "test.jpg"
39   #以写模式在本地打开文件
40   f_handler = open(file_name,'wb').write()
41   #接收FTP服务器上文件并写入本地
42   ftp.retrbinary("RETR test.jpg",f_handler,buf_size)
43   #关闭调试
44   ftp.set_debuglevel(0)
45   #退出FTP服务器
46   ftp.quit()
47 """
48 描述:简单FTP文件上传
49 """
50 def down_ftp():
51   ftp = FTP()
52   #打开调试级别2,显示详细信息
53   ftp.set_debuglevel(2)
54      #连接FTP服务器
55   ftp.connect(ftp_server,ftp_port)
56   #登录FTP服务器如果匿名登录则用空串代替即可
57   ftp.login(user_name,password)
58   print ftp.getwelcome()
59   dir_name = "/mysoft/tool/"
60   ftp.cwd(dir_name)
61   buf_size = 1024
62   file_name = 'test.jpg'
63   #以读模式在本地打开文件
64   f_handler = open(file_name,'rb')
65   #上传文件
66   ftp.storbinary('STOR server_test.jpg',f_handler,buf_size)
67   #关闭调试
68   ftp.set_debuglevel(0)
69   #关闭文件
70   f_handler.close()
71   #退出FTP服务器
72   ftp.quit()
73
74 """
75 描述:登录到FTP站点:ftp_server,并到tarDirTemp目录下下载fileNameTempList列表中的文件
76 参数:ftp_server:ftp站点名称   user_name:ftp登录名   password:ftp密码
77       tarDirTemp:下载的目标绝对目录   fileNameTempList:要下载的文件全名列表
78 返回值:输出:成功:0 失败:1
79 """
80 def down_ftp_file(ftp_server, user_name, password, tarDirTemp,fileNameTempList):
81   try:
82         ftp = FTP(ftp_server)
83         ftp.login(user_name, password)
84         ftp.cwd(tarDirTemp)
85         ftp.set_debuglevel(2)
86   except socket.error as errobj:
87         print 'fpt error: %s can\'t download directory\'s file %s' % (errobj, tarDirTemp)
88         return False
89
90   for filename in fileNameTempList:
91         try:
92             #以写模式在本地打开文件
93             fp = open(filename, 'wb')
94             #从FTP中下载文件
95             ftp.retrbinary('RETR '+filename, fp.write, 1024)
96         except IOError as ioerr:
97             print 'Error: [%s] %s' % (ioerr.errno, ioerr.strerror)
98             return False
99         except FTP.all_errors as errobj:
100             print 'fpt error: [%s] %s' % (errobj, filename)
101             if os.path.isfile(filename):
102               os.system('rm -f ' + filename)
103             continue
104   ftp.close()
105   return True
106
107 """
108 描述:测试方法
109 """
110 if __name__=="__main__":
111   upload_ftp()
112   down_ftp()
113   down_ftp_file(ftp_server,user_name,password,"/mysoft/tool/",['1.jpg','2.jpg','3.jpg'])
  
  
页: [1]
查看完整版本: pytnon FTP编程-- ftplib 模块