Python积累学习(一)ftp上传或下载操作
来源:互联网 发布:h323视频会议协议端口 编辑:程序博客网 时间:2024/05/17 07:00
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()
阅读全文
0 0
- Python积累学习(一)ftp上传或下载操作
- Python ftp 上传和下载
- Python学习积累《一》
- Python 学习积累《一》
- C#学习笔记之从FTP服务器上传和下载数据(一)
- Python实现FTP上传文件或文件夹(递归)
- FTP服务器文件操作(上传/下载/删除/创建/获取)
- 项目总结(二)-------python实现FTP上传/下载文件
- Winform FTP 文档管理 下载 上传---登录(一)
- Java Ftp 操作上传与下载
- C# FTP 文件 文件夹操作 上传 下载
- C# FTP 文件 文件夹操作 上传 下载
- Python 学习积累《一》
- python ftp 文件上传和文件下载
- Python:FTP上传和下载文件编程
- 使用curl下载上传ftp (一)
- python批量操作Linux服务器脚本,ssh密码登录(执行命令、上传、下载)(一)
- FTP服务器文件操作 一:文件上传
- ToLua学习笔记,使用Update方法(二)
- os.path——文件名的平台无关操作
- C++设计模式十二--CompositePattern(组合模式)
- SQL优化----百万数据查询优化
- Oracle--触发器
- Python积累学习(一)ftp上传或下载操作
- CENTOS 安装nodejs
- bootstrap-treeview 后台拼装JSON
- 6. 如何看硬件原理图(pads)
- crond与crontab调研
- 【jQuery源码浅析】(四)--jQuery工具--$.fn
- tensorflow中CNN对mnist识别
- Android7.0运行app报SecurityException MODE_WORLD_READABLE
- 版本更新