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查看zip包中文件及大小的方法
Jul 09 Python
详解python时间模块中的datetime模块
Jan 13 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
Python实现读取Properties配置文件的方法
Mar 29 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 Python
Python二维码生成识别实例详解
Jul 16 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
Python pip install如何修改默认下载路径
Apr 29 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
Matplotlib绘制混淆矩阵的实现
May 27 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调用Oracle存储过程
2006/10/09 PHP
一个显示天气预报的程序
2006/10/09 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
python列表去重的二种方法
2014/02/14 Python
python网络编程示例(客户端与服务端)
2014/04/24 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
用python做游戏的细节详解
2019/06/25 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Python ORM编程基础示例
2020/02/02 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
家长会邀请书
2014/01/25 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2014年党总支工作总结
2014/12/18 职场文书
2015年项目工作总结
2015/04/29 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
交通事故调解协议书
2015/05/20 职场文书
nginx配置指令之server_name的具体使用
2022/08/14 Servers