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'])

 

 

作者lhj588

相关内容

    暂无相关文章

评论关闭