python的ftplib模块
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文件
网上找到一个具体的例子:
- # 例:FTP编程
- from ftplib import FTP
- ftp = FTP()
- timeout = 30
- port = 21
- ftp.connect('192.168.1.188',port,timeout) # 连接FTP服务器
- ftp.login('UserName','888888') # 登录
- print ftp.getwelcome() # 获得欢迎信息
- ftp.cwd('file/test') # 设置FTP路径
- list = ftp.nlst() # 获得目录列表
- for name in list:
- print(name) # 打印文件名字
- path = 'd:/data/' + name # 文件保存路径
- f = open(path,'wb') # 打开要保存文件
- filename = 'RETR ' + name # 保存FTP文件
- ftp.retrbinary(filename,f.write) # 保存FTP上的文件
- ftp.delete(name) # 删除FTP文件
- ftp.storbinary('STOR '+filename, open(path, 'rb')) # 上传FTP文件
- ftp.quit() # 退出FTP服务器
完整的模板:
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- import ftplib
- import os
- import socket
- HOST = 'ftp.mozilla.org'
- DIRN = 'pub/mozilla.org/webtools'
- FILE = 'bugzilla-3.6.7.tar.gz'
- def main():
- try:
- f = ftplib.FTP(HOST)
- except (socket.error, socket.gaierror):
- print 'ERROR:cannot reach " %s"' % HOST
- return
- print '***Connected to host "%s"' % HOST
- try:
- f.login()
- except ftplib.error_perm:
- print 'ERROR: cannot login anonymously'
- f.quit()
- return
- print '*** Logged in as "anonymously"'
- try:
- f.cwd(DIRN)
- except ftplib.error_perm:
- print 'ERRORL cannot CD to "%s"' % DIRN
- f.quit()
- return
- print '*** Changed to "%s" folder' % DIRN
- try:
- #传一个回调函数给retrbinary() 它在每接收一个二进制数据时都会被调用
- f.retrbinary('RETR %s' % FILE, open(FILE, 'wb').write)
- except ftplib.error_perm:
- print 'ERROR: cannot read file "%s"' % FILE
- os.unlink(FILE)
- else:
- print '*** Downloaded "%s" to CWD' % FILE
- f.quit()
- return
- if __name__ == '__main__':
- main()
python的ftplib模块的更多相关文章
- Python之ftplib模块
一.引言: 某一天,开发哥们跟我反映lftp和java写的ftp程序下载文件有问题,具体情况如下:当一个大于1G的文件已经下载完毕以后一直出现夯住的情况.为了重现开发哥们所说情况,我就自己用pytho ...
- python使用ftplib模块实现FTP文件的上传下载
python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...
- Python中ftplib模块的使用
ftplib模块的主要接口 # from ftplib import FTP #加载ftp模块 # ftp=FTP() #设置变量 # ftp.set_debuglevel(2) #打开调试级别2,显 ...
- 关于Python, ftplib模块中的cwd()进入含中文目录失败的问题
使用Python的ftplib模块连接ftp服务器时, 使用cwd()连接含中文的目录, 报错 : UnicodeEncodeError: 'latin-1' codec can't encode c ...
- Python ftplib模块
Python ftplib模块 官方文档:https://docs.python.org/3/library/ftplib.html?highlight=ftplib#module-ftplib 实例 ...
- python ftplib模块使用
Python中默认安装的ftplib模块定义了FTP类,可用来实现简单的ftp客户端,用于上传或下载文件. ftplib模块常用方法 ftp登陆连接 from ftplib import FTP #加 ...
- ftplib模块【python】
转自:http://www.cnblogs.com/kaituorensheng/p/4480512.html 函数释义 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实 ...
- python中的ftplib模块
前言 Python中默认安装的ftplib模块定义了FTP类. ftplib模块相关参数: 加载ftp模块:from ftplib import FTP ftp = FTP()#设置变量ftp.set ...
- python标准库:ftplib模块
ftplib模块包含了文件传输协议(FTP)客户端的实现. 下面的例子展示了如何登入和获取进入目录的列表,dir函数传入一个回调函数,该回调函数在服务器相应时每一行调用一次.ftplib模块默认的回调 ...
随机推荐
- WordCounter Python实现
<!doctype html>博客.md p:first-child, #write > ul:first-child, #write > ol:first-child, #w ...
- canvas - 饼状图
<!DOCTYPE html> <html> <head> <title>Canvas测试</title> <meta charset ...
- Android面试题整理
1. 请描述下Activity的生命周期. 2. 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态? 3. 如何将一个Activity设置成窗口的样 ...
- 给Java新手的一些建议——Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- mysql数据库( 基础篇加破解)
1.数据库(Database,DB)是按照数据结构来组织.存储和管理数据的,并且是建立在计算机存储设备上的仓库 2.什么是数据库:(用来存储数据的仓库) 数据库:(cs架构套接字) 数据库管理软件分类 ...
- Jetty服务怎么配置,如何发布项目
Jetty相对于Tomcat来时相对较轻,适合多并发且有较多实时通讯的系统,能够稳定的保持连接且占用资源相对较少.今天就简单介绍一下Jetty的配置及项目部署. 工具/原料 Jetty 电脑 Jett ...
- 文件上传smart
package com.bdqn.zhp.util; import java.text.SimpleDateFormat; import java.util.Date; import javax.se ...
- CSS命名规范参考及书写注意事项
CSS书写顺序 *{ /*显示属性*/ display position float clear cursor … /*盒模型*/ margin padding width height /*排版*/ ...
- 阿里云ESC服务器安装tomcat后无法远程访问
问题描述:服务器上面没有部署文件,安装了tomcat,在服务器本地能通过"localhost:8080"访问到tom猫页面 但是远程访问“外网ip+:8080”就访问不了 解决方案 ...
- fn project hot functions 说明
1. 简单介绍 所谓 hot functions 实际上就是长时间运行的functions ,简单理解类似后台任务 2. fnproject 处理的方式 fnproject 使用 类似 http的 ...