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 相关文章推荐
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
Python安装pycurl失败的解决方法
Oct 15 Python
Python之修改图片像素值的方法
Jul 03 Python
使用python画社交网络图实例代码
Jul 10 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Python树莓派学习笔记之UDP传输视频帧操作详解
Nov 15 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
django实现后台显示媒体文件
Apr 07 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 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
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
javascript动态向网页中添加表格实现代码
2014/02/19 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
js实现简单的倒计时
2021/01/28 Javascript
Python struct.unpack
2008/09/06 Python
python 域名分析工具实现代码
2009/07/15 Python
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
平面设计的岗位职责
2013/11/08 职场文书
上班迟到检讨书
2014/01/10 职场文书
妇产医师自荐信
2014/01/29 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
HTML基础详解(下)
2021/10/16 HTML / CSS
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫