Python基于FTP模块实现ftp文件上传操作示例


Posted in Python onApril 23, 2018

本文实例讲述了Python基于FTP模块实现ftp文件上传操作。分享给大家供大家参考,具体如下:

#!/usr/bin/python
#-*- coding:utf-8 -*-
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.cwd("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)#上传目标文件

上传来一个简单例子

#!/usr/bin/python
#coding=utf-8
from ftplib import FTP         #引入ftp模块
import os
ftp = FTP("ip")           #设置ftp服务器地址
ftp.login('username', 'password')      #设置登录账户和密码
ftp.retrlines('LIST')          #列出文件目录
ftp.cwd('a')            #选择操作目录
ftp.retrlines('LIST')          #列出目录文件
localfile = '/mnt/NasFile/ftp测试/新功能.doc'    #设定文件位置
f = open(localfile, 'rb')        #打开文件
#file_name=os.path.split(localfile)[-1]
#ftp.storbinary('STOR %s'%file_name, f , 8192)
ftp.storbinary('STOR %s' % os.path.basename(localfile), f) #上传文件

完整版:

#coding: utf-8
import os
from ftplib import FTP
def ftpconnect(host, username, password):
  ftp = FTP()
  #ftp.set_debuglevel(2)     #打开调试级别2,显示详细信息
  ftp.connect(host, 21)     #连接
  ftp.login(username, password) #登录,如果匿名登录则用空串代替即可
  return ftp
def downloadfile(ftp, remotepath, localpath):
  bufsize = 1024        #设置缓冲块大小
  ftp.cwd('微农贷')
  fp = open(localpath,'wb')   #以写模式在本地打开文件
  ftp.retrbinary('RETR ' + remotepath, fp.write, bufsize) #接收服务器上文件并写入本地文件
  ftp.set_debuglevel(0)     #关闭调试
  fp.close()          #关闭文件
def uploadfile(ftp, remotepath, localpath):
  bufsize = 1024
  ftp.cwd('微农贷')
  fp = open(localpath, 'rb')
  ftp.storbinary('STOR '+ remotepath , fp, bufsize) #上传文件
  ftp.set_debuglevel(0)
  fp.close()
# 使用os模块walk函数,搜索出某目录下的全部excel文件
######################获取同一个文件夹下的所有excel文件名#######################
def getFileName(filepath):
  file_list = []
  for root, dirs, files in os.walk(filepath):
    for filespath in files:
      # print(os.path.join(root, filespath))
      file_list.append(os.path.join(root, filespath))
  return file_list
if __name__ == "__main__":
  ftp = ftpconnect("ip", "账号", "密码")
  #########设置本地读取文件路径##############
  filepath='C:/pic/data/'
  file_list = getFileName(filepath)
  print len(file_list)
  for each in file_list:
    print each
    localfile=each
    remotepath=os.path.basename(localfile)
    uploadfile(ftp, remotepath, localfile)
  ftp.quit()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之画圈还不简单吗?
Sep 20 Python
python实现简单socket通信的方法
Apr 19 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
在centos7中分布式部署pyspider
May 03 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
Django Rest framework三种分页方式详解
Jul 26 Python
对django layer弹窗组件的使用详解
Aug 31 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 #Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 #Python
python 获取指定文件夹下所有文件名称并写入列表的实例
Apr 23 #Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 #Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 #Python
对python .txt文件读取及数据处理方法总结
Apr 23 #Python
python 读文件,然后转化为矩阵的实例
Apr 23 #Python
You might like
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
php知道与问问的采集插件代码
2010/10/12 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
如何查找和删除数据库中的重复数据
2014/11/05 面试题
初中音乐教学反思
2014/01/12 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
高三语文教学反思
2016/02/16 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL