Python ftplib模块:实现FTP文件传输
FTP(File Transfer Protocol)是一种在网络上传输文件的普遍方式,因为在大部分的操作系统上都有客户端的FTP与服务器端的FTP服务。服务器端的 FTP 可以同时供私有(private)用户与匿名(anonymous)用户使用。
私有的服务器端 FTP 只允许系统用户进行连接,匿名的服务器端 FTP 不需账号即可连接网络传输文件。使用匿名的服务器端 FTP 会产生安全性的问题。
FTP 提供一个控制端口与一个数据端口,在服务器端与客户端之间的数据传输使用独立的 socket,以避免死机的问题。
Python 中默认安装的 ftplib 模块定义了 FTP 类,可以用于创建一个 FTP 连接,以上传或下载文件。FTP 类的语法如下:
下面通过一个综合示例来讲解 ftplib 模块的使用方法和技巧。
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
私有的服务器端 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.quitFTP 相关命令的含义如下:
#设置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 ()
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。