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中无限元素列表的实现方法
Aug 18 Python
Python 数据结构之队列的实现
Jan 22 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
pyqt5、qtdesigner安装和环境设置教程
Sep 25 Python
在Python中实现函数重载的示例代码
Dec 12 Python
Python 内置变量和函数的查看及说明介绍
Dec 25 Python
Python 爬虫性能相关总结
Aug 03 Python
Python实现自动签到脚本的示例代码
Aug 19 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
使用jquery实现简单的ajax
2013/07/08 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
js微信分享API
2020/10/11 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
2017/04/13 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
python numpy元素的区间查找方法
2018/11/14 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Django model class Meta原理解析
2020/11/14 Python
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
请说出以下代码输出什么
2013/08/30 面试题
事业单位个人应聘自荐信
2013/09/21 职场文书
销售文员岗位职责
2013/11/29 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
员工薪酬激励方案
2014/06/13 职场文书
先进班组材料范文
2014/12/25 职场文书
员工工作表现自我评价
2015/03/06 职场文书
信用卡收入证明范本
2015/06/12 职场文书
小学运动会入场口号
2015/12/24 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书