from ftplib import FTP      #加载ftp模块

ftp=FTP()                   #设置变量

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

ftp.set_pasv(0)                 #0主动模式 1 #被动模式

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.dir()                   #显示目录下文件信息

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) #上传目标文件

ps:以下代码来自《征服python-语言基础于典型应用》

import string

from ftplib import FTP # 从ftplib模块中导入FTP

bufsize = 1024 # 设置缓冲区大小

def Get(filename): # 下载文件

command = 'RETR ' + filename

ftp.retrbinary(command, open(filename,'wb').write, bufsize)

print '下载成功'

def Put(filename): # 上传文件

command = 'STOR ' + filename

filehandler = open(filename,'rb')

ftp.storbinary(command,filehandler,bufsize)

filehandler.close()

print '上传成功'

def PWD(): # 获取当前目录

print ftp.pwd()

def Size(filename): # 获取文件大小

print ftp.size(filename)

def Help(): # 输出帮助

print '''

==================================

Simple Python FTP

==================================

cd 进入文件夹

delete 删除文件

dir 获取当前文件列表

get 下载文件

help 帮助

mkdir 创建文件夹

put 上传文件

pwd 获取当前目录

rename 重命名文件

rmdir 删除文件夹

size 获取文件大小

'''

server = raw_input('请输入FTP服务器地址:') # 获取服务器地址

Help()

ftp = FTP(server) # 连接到服务器地址

username = raw_input('请输入用户名:') # 获取用户名

password = raw_input('请输入密码:')# 获取密码

ftp.login(username,password) # 登录FTP

print ftp.getwelcome()# 获取欢迎信息

# 命令与对应的函数字典

actions = {'dir':ftp.dir, 'pwd': PWD, 'cd':ftp.cwd, 'get':Get,

'put':Put, 'help':Help, 'rmdir': ftp.rmd,

'mkdir': ftp.mkd, 'delete':ftp.delete,

'size':Size, 'rename':ftp.rename}

while True: # 命令循环

print 'pyftp>', # 输出提示符

cmds = raw_input() # 获取输入

cmd = string.split(cmds) # 将输入按空格分割

try: # 异常处理

if len(cmd) == 1: # 判断命令是否有参数

if string.lower(cmd[0]) == 'quit': # 如果命令为quit则退出循环

break

else:

actions[string.lower(cmd[0])]() # 调用与命令对应的函数

elif len(cmd) == 2: # 处理命令有一个参数的情况

actions[string.lower(cmd[0])](cmd[1]) # 调用与命令对应的函数

elif len(cmd) == 3: # 处理命令有两个参数的情况

actions[string.lower(cmd[0])](cmd[1],cmd[2]) # 调用与命令对应的函数

else:

print '输入错误'

except:

print '命令出错'

ftp.quit() # 端口连接退出

python ftplib bufsize_python:ftplib模块相关推荐

  1. python文件传输模块ftplib模块的使用

    python文件传输模块ftplib模块的使用 文章目录: 一.ftplib介绍 1.ftplib的简单介绍 2.ftp的API说明 1)ftp登陆连接 2)ftp相关命令操作 二.ftplib实例说 ...

  2. python ftplib_python:使用ftplib编写FTP客户端

    Python中的ftplib模块 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件 FTP的工作流程及基本操作可参考协议RFC95 ...

  3. Python实战之logging模块使用详解

    用Python写代码的时候,在想看的地方写个print xx 就能在控制台上显示打印信息,这样子就能知道它是什么了,但是当我需要看大量的地方或者在一个文件中查看的时候,这时候print就不大方便了,所 ...

  4. 【廖雪峰python进阶笔记】模块

    1. 导入模块 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 math: import math 你可以认为math就是一个指向已导入 ...

  5. Python标准库queue模块原理浅析

    Python标准库queue模块原理浅析 本文环境python3.5.2 queue模块的实现思路 作为一个线程安全的队列模块,该模块提供了线程安全的一个队列,该队列底层的实现基于Python线程th ...

  6. Python标准库threading模块Condition原理浅析

    Python标准库threading模块Condition原理浅析 本文环境python3.5.2 threading模块Condition的实现思路 在Python的多线程实现过程中,在Linux平 ...

  7. Python标准库asyncio模块基本原理浅析

    Python标准库asyncio模块基本原理浅析 本文环境python3.7.0 asyncio模块的实现思路 当前编程语言都开始在语言层面上,开始简化对异步程序的编程过程,其中Python中也开始了 ...

  8. python之堆heapq模块

    python之堆heapq模块 堆是一种特殊的树形结构,通常我们所说的堆的数据结构指的是完全二叉树,并且根节点的值小于等于该节点所有子节点的值. 堆是非线性的树形的数据结构,有两种堆,最大堆与最小堆. ...

  9. python自定义包或模块在Linux服务器导入错误的解决办法

    python自定义包或模块在Linux服务器导入错误的解决办法 在本地机器上跑python代码,自己定义的文件进行导包运行是没有问题,但是放到linux服务器上的时候就会提示 ImportError: ...

最新文章

  1. 【采用】互联网金融风控模型的设计
  2. [ATF]-ATF启动--BL31跳转到optee和uboot
  3. html select选择事件_用 Java 拿下 HTML,分分钟写个小爬虫
  4. 改变openssl的环境变量linux,ECS Linux 安装配置openssl的具体过程
  5. 初中生学计算机网络应用怎么样,初中生读计算机网络技术专业怎么样?小编解答...
  6. Mssql 跨域查询
  7. bigdecimal 保留两位小数_openpyxl修改单元格格式(隐藏小数、设定百分数位数)...
  8. Source Insight 生成函数调用关系图
  9. IBM计划收购Resilient Systems以扩大安全事件响应能力
  10. 数据库(基础SQL)
  11. 弹性法计算方法的mck法_经济学原理中讲到的中点法计算需求弹性是怎么回事
  12. 读取图像数据:通过append方法
  13. 并查集:A bug's life
  14. 服务器硬盘和普通硬盘驱动安装,固态硬盘与硬盘驱动器的区别及怎样选择
  15. Vue3+Naive踩坑
  16. JAVA实现:居民电费阶梯式计价器
  17. 数据挖掘(2.4)--数据归约和变换
  18. pdfviewpager_Android客户端实现查阅PDF文件功能
  19. 又涨了?2021年4月程序员工资新鲜出炉!
  20. 读书笔记:《谁说菜鸟不会数据分析-入门篇》第1-4章

热门文章

  1. jQuery中的.bind()、.live()和.delegate()之间区别分析,学习jquery
  2. Apache/Tomcat/JBOSS/Nginx(2)
  3. Private Inheritance(what, where)
  4. tickcount()修改成小时分钟_银行核心系统24小时机制实现总结
  5. Java并发编程之堵塞队列介绍以及SkipList(跳表)
  6. scala apply方法 笔记
  7. java 顺序栈_Java实现顺序栈
  8. oracle 分组_大数据分组怎样才会更快
  9. Java PipedInputStream available()方法与示例
  10. ctype函数_PHP ctype_cntrl()函数与示例