Python中的ftplib模块

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

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

ftp登陆连接

from ftplib import FTP #加载ftp模块

  1. ftp=FTP() #设置变量
  2. ftp.set_debuglevel(2) #打开调试级别2,显示详细信息
  3. ftp.connect("IP","port") #连接的ftp sever和端口
  4. ftp.login("user","password")#连接的用户名,密码
  5. print ftp.getwelcome() #打印出欢迎信息
  6. ftp.cmd("xxx/xxx") #更改远程目录
  7. bufsize=1024 #设置的缓冲区大小
  8. filename="filename.txt" #需要下载的文件
  9. file_handle=open(filename,"wb").write #以写模式在本地打开文件
  10. ftp.retrbinaly("RETR filename.txt",file_handle,bufsize) #接收服务器上文件并写入本地文件
  11. ftp.set_debuglevel(0) #关闭调试模式
  12. ftp.quit #退出ftp

ftp相关命令操作

  1. ftp.cwd(pathname) #设置FTP当前操作的路径
  2. ftp.dir() #显示目录下文件信息
  3. ftp.nlst() #获取目录下的文件
  4. ftp.mkd(pathname) #新建远程目录
  5. ftp.pwd() #返回当前所在位置
  6. ftp.rmd(dirname) #删除远程目录
  7. ftp.delete(filename) #删除远程文件
  8. ftp.rename(fromname, toname)#将fromname修改名称为toname。
  9. ftp.storbinaly("STOR filename.txt",file_handel,bufsize) #上传目标文件
  10. ftp.retrbinary("RETR filename.txt",file_handel,bufsize)#下载FTP文件

 from ftplib import FTP

 def ftpconnect(host, username, password):
ftp = FTP()
ftp.set_debuglevel(2)
ftp.connect(host, 21)
ftp.login(username, password)
return ftp def downloadfile(ftp, remotepath, localpath):
# 从ftp下载文件
bufsize = 1024
fp = open(localpath, 'wb')
ftp.retrbinary('RETR ' + remotepath, fp.write, bufsize)
ftp.set_debuglevel(0)
fp.close() def uploadfile(ftp, localpath, remotepath):
# 从本地上传文件到ftp
bufsize = 1024
fp = open(localpath, 'rb')
ftp.storbinary('STOR ' + remotepath, fp, bufsize)
ftp.set_debuglevel(0)
fp.close() if __name__ == "__main__":
ftp = ftpconnect("10.1.2.254", "download", "download")
uploadfile(ftp, "/home/rxf/other/PlatServerTest/2.jpg", "D:/download/Ranxiangfei/2.jpg")
downloadfile(ftp, "D:/download/Ranxiangfei/svn/V2.0.xxx.171030_Alpha/xzrs.tar.gz",
"/home/rxf/svn/V2.0.xxx.171030_Alpha/xzrs.tar.gz") ftp.quit()
 

python3_ftp文件传输的更多相关文章

  1. Linux主机上实现树莓派的交叉编译及文件传输,远程登陆

    0.环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS:官网下的的raspb ...

  2. putty提供的两个文件传输工具PSCP、PSFTP详细介绍

    用 SSH 来传输文件 PuTTY 提供了两个文件传输工具 PSCP (PuTTY Secure Copy client) PSFTP (PuTTY SFTP client) PSCP 通过 SSH ...

  3. c# 局域网文件传输实例

    一个基于c#的点对点局域网文件传输小案例,运行效果截图 //界面窗体 using System;using System.Collections.Generic;using System.Compon ...

  4. 使用 zssh 进行 Zmodem 文件传输

    Zmodem 最早是设计用来在串行连接(uart.rs232.rs485)上进行数据传输的,比如,在 minicom 下,我们就可以方便的用 Zmodem (说 sz .rz 可能大家更熟悉)传输文件 ...

  5. 在windows 与Linux间实现文件传输(C++&C实现)

    要实现windows与linux间的文件传输,可以通过socket网络编程来实现. 这次要实现的功能与<Windows下通过socket进行字符串和文件传输>中实现的功能相同,即客户端首先 ...

  6. Windows下通过socket进行字符串和文件传输

    今天在windows平台下,通过socket实现了简单的文件传输.通过实现这一功能,了解基本的windows网络编程和相关函数的使用方法. 在windows平台上进行网络编程,首先都需要调用函数WSA ...

  7. Linux下几种文件传输命令 sz rz sftp scp

    Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具 ...

  8. 艺萌TCP文件传输及自动更新系统介绍(TCP文件传输)(四)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开源,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  9. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...

随机推荐

  1. iOS开发之--使用storyboard下,tabbar小图标和文字颜色的设置

    在开发项目的时候,如果是使用故事版设计的架构,那么在设置tabbar小图标的时候,可能会出现一点小问题, 成功的设置方法如下: 1.设置seleectedImage和image,其实就是非选中状态的图 ...

  2. 模拟http请求 带 chunked解析办法一

    今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行.于是自己又把c ...

  3. iOS json解析中包含“\n”等解析出错

    文题算是解决了,把特殊字符替换一下:-(NSString *)JSONString:(NSString *)aString {    NSMutableString *s = [NSMutableSt ...

  4. 关于redux适用的情况

    最近在包子在学习redux.redux是一个状态管理的东西.里面有状态树.最开始设计这个redux是为了方便去管理.因为随着web/移动端开发的越来越多元化,都是倾向于组件形式的.但是多个组件她们如果 ...

  5. C语言文件读写(结构体文件)

    有时候,我们需要将输入的数据存储起来,这时候就需要用到文件,对于C语言而言,文件的读写有多种方式,下面主要是结构体文件的读写,例如student.dat(第一列是学号,第二列是姓名) xiaoming ...

  6. JS获取时间戳+C#水煎戳转换

    JS获取了当前毫秒的时间戳. var timestamp=new Date().getTime(); //第二种方法: //var timestamp = (new Date()).valueOf() ...

  7. Morphia - mongodb之ORM框架

    一.简介 二.注解 1.@Entity 2.@Id3.@Indexed4.@Embedded5.@Transient和@Property6.@Reference 三.示例 四.参考资料 Morphia ...

  8. <2014 12 28> Some conclusions and thought recently

    Since last year August when I started to prepare for the IELTS examiation, it took one year's time f ...

  9. SpringBoot 与缓存

    1. JSR107 Java Caching 定义了5个核心接口: CachingProvider:定义了创建,配置,获取,管理和控制多个CacheManager; CacheManager:定义了创 ...

  10. 部署knight项目

    发布CRM你将使用以下软件 nginx uWSGI CentOS7 CRM项目文件 virtualenv supervisor WSGI.uWSGI python web服务器开发使用WSGI协议(W ...