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 相关文章推荐
python3编写C/S网络程序实例教程
Aug 25 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
python利用lxml读写xml格式的文件
Aug 10 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
python实现顺序表的简单代码
Sep 28 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
python获取服务器响应cookie的实例
Dec 28 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
python读取并写入mat文件的方法
Jul 12 Python
Python3操作读写CSV文件使用包过程解析
Apr 10 Python
一文解决django 2.2与mysql兼容性问题
Jul 15 Python
基于flask实现五子棋小游戏
May 25 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在线解压ZIP文件的方法
2014/12/30 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
深入掌握 react的 setState的工作机制
2017/09/27 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
[09:23]国际邀请赛采访专栏:iG战队VK,Tongfu战队Cu
2013/08/05 DOTA
python操作日期和时间的方法
2014/03/11 Python
Python3基础之list列表实例解析
2014/08/13 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
python读取二进制mnist实例详解
2017/05/31 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
计算机相关的自我评价
2014/01/15 职场文书
暑期培训随笔感言
2014/03/10 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android