Python中的ftplib模块

Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件

FTP的工作流程及基本操作可参考协议RFC959

ftp登陆连接

from ftplib import FTP #加载ftp模块

ftp=FTP() #设置变量

ftp.set_debuglevel(2) #打开调试级别2,显示详细信息

ftp.connect("IP","port") #连接的ftp sever和端口

ftp.login("user","password")#连接的用户名,密码

print ftp.getwelcome() #打印出欢迎信息

ftp.cmd("xxx/xxx") #更改远程目录

bufsize=1024 #设置的缓冲区大小

filename="filename.txt" #需要下载的文件

file_handle=open(filename,"wb").write #以写模式在本地打开文件

ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收服务器上文件并写入本地文件

ftp.set_debuglevel(0) #关闭调试模式

ftp.quit #退出ftp

ftp相关命令操作

ftp.cwd(pathname) #设置FTP当前操作的路径

ftp.dir() #显示目录下文件信息

ftp.nlst() #获取目录下的文件

ftp.mkd(pathname) #新建远程目录

ftp.pwd() #返回当前所在位置

ftp.rmd(dirname) #删除远程目录

ftp.delete(filename) #删除远程文件

ftp.rename(fromname, toname)#将fromname修改名称为toname。

ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上传目标文件

ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下载FTP文件

网上找到一个具体的例子:

  1. # 例:FTP编程
  2. from ftplib import FTP
  3. ftp = FTP()
  4. timeout = 30
  5. port = 21
  6. ftp.connect('192.168.1.188',port,timeout) # 连接FTP服务器
  7. ftp.login('UserName','888888') # 登录
  8. print ftp.getwelcome()  # 获得欢迎信息
  9. ftp.cwd('file/test')    # 设置FTP路径
  10. list = ftp.nlst()       # 获得目录列表
  11. for name in list:
  12. print(name)             # 打印文件名字
  13. path = 'd:/data/' + name    # 文件保存路径
  14. f = open(path,'wb')         # 打开要保存文件
  15. filename = 'RETR ' + name   # 保存FTP文件
  16. ftp.retrbinary(filename,f.write) # 保存FTP上的文件
  17. ftp.delete(name)            # 删除FTP文件
  18. ftp.storbinary('STOR '+filename, open(path, 'rb')) # 上传FTP文件
  19. ftp.quit()                  # 退出FTP服务器

完整的模板:

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import ftplib
  4. import os
  5. import socket
  6. HOST = 'ftp.mozilla.org'
  7. DIRN = 'pub/mozilla.org/webtools'
  8. FILE = 'bugzilla-3.6.7.tar.gz'
  9. def main():
  10. try:
  11. f = ftplib.FTP(HOST)
  12. except (socket.error, socket.gaierror):
  13. print 'ERROR:cannot reach " %s"' % HOST
  14. return
  15. print '***Connected to host "%s"' % HOST
  16. try:
  17. f.login()
  18. except ftplib.error_perm:
  19. print 'ERROR: cannot login anonymously'
  20. f.quit()
  21. return
  22. print '*** Logged in as "anonymously"'
  23. try:
  24. f.cwd(DIRN)
  25. except ftplib.error_perm:
  26. print 'ERRORL cannot CD to "%s"' % DIRN
  27. f.quit()
  28. return
  29. print '*** Changed to "%s" folder' % DIRN
  30. try:
  31. #传一个回调函数给retrbinary() 它在每接收一个二进制数据时都会被调用
  32. f.retrbinary('RETR %s' % FILE, open(FILE, 'wb').write)
  33. except ftplib.error_perm:
  34. print 'ERROR: cannot read file "%s"' % FILE
  35. os.unlink(FILE)
  36. else:
  37. print '*** Downloaded "%s" to CWD' % FILE
  38. f.quit()
  39. return
  40. if __name__ == '__main__':
  41. main()

python的ftplib模块的更多相关文章

  1. Python之ftplib模块

    一.引言: 某一天,开发哥们跟我反映lftp和java写的ftp程序下载文件有问题,具体情况如下:当一个大于1G的文件已经下载完毕以后一直出现夯住的情况.为了重现开发哥们所说情况,我就自己用pytho ...

  2. python使用ftplib模块实现FTP文件的上传下载

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...

  3. Python中ftplib模块的使用

    ftplib模块的主要接口 # from ftplib import FTP #加载ftp模块 # ftp=FTP() #设置变量 # ftp.set_debuglevel(2) #打开调试级别2,显 ...

  4. 关于Python, ftplib模块中的cwd()进入含中文目录失败的问题

    使用Python的ftplib模块连接ftp服务器时, 使用cwd()连接含中文的目录, 报错 : UnicodeEncodeError: 'latin-1' codec can't encode c ...

  5. Python ftplib模块

    Python ftplib模块 官方文档:https://docs.python.org/3/library/ftplib.html?highlight=ftplib#module-ftplib 实例 ...

  6. python ftplib模块使用

    Python中默认安装的ftplib模块定义了FTP类,可用来实现简单的ftp客户端,用于上传或下载文件. ftplib模块常用方法 ftp登陆连接 from ftplib import FTP #加 ...

  7. ftplib模块【python】

    转自:http://www.cnblogs.com/kaituorensheng/p/4480512.html 函数释义 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实 ...

  8. python中的ftplib模块

    前言 Python中默认安装的ftplib模块定义了FTP类. ftplib模块相关参数: 加载ftp模块:from ftplib import FTP ftp = FTP()#设置变量ftp.set ...

  9. python标准库:ftplib模块

    ftplib模块包含了文件传输协议(FTP)客户端的实现. 下面的例子展示了如何登入和获取进入目录的列表,dir函数传入一个回调函数,该回调函数在服务器相应时每一行调用一次.ftplib模块默认的回调 ...

随机推荐

  1. WordCounter Python实现

    <!doctype html>博客.md p:first-child, #write > ul:first-child, #write > ol:first-child, #w ...

  2. canvas - 饼状图

    <!DOCTYPE html> <html> <head> <title>Canvas测试</title> <meta charset ...

  3. Android面试题整理

    1.    请描述下Activity的生命周期. 2.    如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 3.    如何将一个Activity设置成窗口的样 ...

  4. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  5. mysql数据库( 基础篇加破解)

    1.数据库(Database,DB)是按照数据结构来组织.存储和管理数据的,并且是建立在计算机存储设备上的仓库 2.什么是数据库:(用来存储数据的仓库) 数据库:(cs架构套接字) 数据库管理软件分类 ...

  6. Jetty服务怎么配置,如何发布项目

    Jetty相对于Tomcat来时相对较轻,适合多并发且有较多实时通讯的系统,能够稳定的保持连接且占用资源相对较少.今天就简单介绍一下Jetty的配置及项目部署. 工具/原料 Jetty 电脑 Jett ...

  7. 文件上传smart

    package com.bdqn.zhp.util; import java.text.SimpleDateFormat; import java.util.Date; import javax.se ...

  8. CSS命名规范参考及书写注意事项

    CSS书写顺序 *{ /*显示属性*/ display position float clear cursor … /*盒模型*/ margin padding width height /*排版*/ ...

  9. 阿里云ESC服务器安装tomcat后无法远程访问

    问题描述:服务器上面没有部署文件,安装了tomcat,在服务器本地能通过"localhost:8080"访问到tom猫页面 但是远程访问“外网ip+:8080”就访问不了 解决方案 ...

  10. fn project hot functions 说明

    1. 简单介绍 所谓 hot  functions 实际上就是长时间运行的functions ,简单理解类似后台任务 2. fnproject  处理的方式 fnproject 使用 类似 http的 ...