python ftplib模块详解_Python ftplib模块:实现FTP文件传输

FTP(File Transfer Protocol)是一种在网络上传输文件的普遍方式,因为在大部分的操作系统上都有客户端的FTP与服务器端的FTP服务。服务器端的 FTP 可以同时供私有(private)用户与匿名(anonymous)用户使用。

私有的服务器端 FTP 只允许系统用户进行连接,匿名的服务器端 FTP 不需账号即可连接网络传输文件。使用匿名的服务器端 FTP 会产生安全性的问题。

FTP 提供一个控制端口与一个数据端口,在服务器端与客户端之间的数据传输使用独立的 socket,以避免死机的问题。

Python 中默认安装的 ftplib 模块定义了 FTP 类,可以用于创建一个 FTP 连接,以上传或下载文件。FTP 类的语法如下:

class FTP([host [, user [, passwd [, acct]]]])

其中,host 是主机名称;user 是用户账号;passwd 是用户密码。 下面是 FTP 类的使用流程和各种方法的含义。

#加载ftp模块

from ftplib import FTP

#设置变量

ftp=FTP()

#打开调试级别2,显示详细信息

ftp. set_debuglevel (2)

#连接的ftp sever 和端口

ftp. connect("服务器IP",'端口号')

#连接的用户名和密码

ftp. login ("user", "password")

#打印出欢迎信息

print (ftp. getwelcome () )

#更改远程目录

ftp.cmd ("XXX/XXX")

#设置的缓冲区大小

bufsize=1024

#需要下载的文件

filename=" filename.txt"

#以写模式在本地打开文件

filehandle=open ( filename, "wb") . write

#接收服务器上文件并写入本地文件

ftp.retrbinaly ("RETR filename.txt",file_handle, bufsize)

#关闭调试模式

ftp.set_debuglevel (0)

#退出ftp

ftp.quit

FTP 相关命令的含义如下:

#设置FTP当前操作的路径

ftp .cwd (pathname)

#显示目录下文件信息

ftp.dir ()

#获取目录下的文件

ftp.nlst ()

#新建远程目录

ftp.mkd (pathname)

#返回当前所在位置

ftp.pwd()

#删除远程目录

ftp.rmd (di rname)

#删除远程文件

ftp.delete (filename)

#将fromname修改名称为toname。

ftp.rename ( fromname, toname)

#_上传目标文件

ftp.storbinaly ("STOR filename.txt", file_handel, bufsize)

#下载FTP文件

ftp.retrbinary ("RETR filename.txt", file_handel,bufsize)

下面通过一个综合示例来讲解 ftplib 模块的使用方法和技巧。

#上传FTP文件

from ftplib import FTP

ftp = FTP()

timeout = 30

port = 21

#连接FTP服务器

ftp. connect (' 192.168.1.106',port, timeout)

#登录FTP服务器

ftp. login( 'adminns', '123456')

#获得欢迎信息

print (ftp. getwelcome () )

#设置FTP路径

ftp.cwd( 'file/test')

#获得目录列表

list = ftp.nlst ()

#打印文件名字

for name in list :

print (name)

#文件保存路径

path = 'd: /data/' + name

#打开要保存的文件

f = open(path, 'wb')

#保存FTP文件

filename = 'RETR' + name

#保存FTP上的文件

ftp. retrbinary (filename, f.write)

#删除FTP文件

ftp. delete (name)

#上传FTP文件

ftp. storbinary(' STOR '+filename, open (path,'rb') )

#退出FTP服务器

ftp.quit ()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值