zoukankan      html  css  js  c++  java
  • 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'])


     

  • 相关阅读:
    数据表列名与数据库关键字冲突,在Hibernate下的解决办法
    Ubuntu12.04 MySQL服务器乱码问题的解决办法
    Linux实时将所有输出重定向到文件
    vue Element UI 导航高亮
    Js计算时间差
    Js时间处理
    Vue设置导航栏为公共模块并在登录页不显示
    Vue中表单校验
    Vue中div高度自适应
    Vue引入js、css文件
  • 原文地址:https://www.cnblogs.com/lhj588/p/2253355.html
Copyright © 2011-2022 走看看