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 相关文章推荐
pymongo实现多结果进行多列排序的方法
May 16 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
Python实现的文本编辑器功能示例
Jun 30 Python
python select.select模块通信全过程解析
Sep 20 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
pytorch自定义初始化权重的方法
Aug 17 Python
如何教少儿学习Python编程
Jul 10 Python
通过代码实例了解Python异常本质
Sep 16 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 Python
Python进度条的使用
May 17 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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中使用url传递数组的方法
2015/02/11 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript 动态生成私有变量访问器
2009/12/06 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
JS插入排序简单理解与实现方法分析
2019/11/25 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
Python中的高级数据结构详解
2015/03/27 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python发送邮件实例分享
2017/07/28 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
python中import与from方法总结(推荐)
2019/03/21 Python
Python企业编码生成系统之系统主要函数设计详解
2019/07/26 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
印度民族服装购物网站:BIBA
2019/08/05 全球购物
小学毕业寄语大全
2014/04/03 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang