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.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
pandas string转dataframe的方法
Apr 11 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
基于python中__add__函数的用法
Nov 25 Python
Django集成celery发送异步邮件实例
Dec 17 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
python 使用csv模块读写csv格式文件的示例
Dec 02 Python
python_tkinter弹出对话框创建
Mar 20 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第一次无法获取cookie问题处理
2014/12/15 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
JavaScript switch语句使用方法简介
2019/12/30 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
使用python爬取B站千万级数据
2018/06/08 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
计算机专业学生的自我评价
2013/12/15 职场文书
社区工作者思想汇报
2014/01/13 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
艾滋病宣传标语
2014/06/25 职场文书
社团活动总结格式
2014/08/29 职场文书
青年志愿者活动感想
2015/08/07 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
mysql数据库实现设置字段长度
2022/06/10 MySQL