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中非常实用的一些功能和函数分享
Feb 14 Python
简单介绍Python中的struct模块
Apr 28 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
Python批量提取PDF文件中文本的脚本
Mar 14 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
Python面向对象之类的封装操作示例
Jun 08 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
python实现扑克牌交互式界面发牌程序
Apr 22 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP 使用memcached简单示例分享
2015/03/05 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
javascript json2 使用方法
2010/03/16 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
js定时器实例分享
2016/12/20 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
荣耀商城:HIHONOR
2020/11/03 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
Java编程面试题
2016/04/04 面试题
酒店个人培训自我鉴定
2013/12/11 职场文书
商场促销活动方案
2014/02/08 职场文书
个人公开承诺书
2014/03/28 职场文书
幼儿园园长新年寄语
2015/08/17 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
分享python函数常见关键字
2022/04/26 Python
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL