前言:
在Windows机器上搭建图片服务中心,提供图片上传与下载,在Jenkins执行自动化测试任务中,对APP自动化生成的失败截图,可进行统一管理。

摘要:
Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件。

目录:

  1. Windows搭建Ftp服务
  2. Python ftplib讲解
  3. 图片管理中心数据上传与下载

正文:
一. Windows搭建Ftp服务
参考文档:http://jingyan.baidu.com/article/455a9950e1e2fba167277862.html

核心步骤:
1.开启window ftp服务

2.配置ftp服务
计算机管理->服务与应用程序->IIS管理器->右键点击 网站->新建站点

3.开启成功检测

二. Python ftplib讲解
1.Python中默认安装的ftplib模块,其中函数有限,函数列举如下:

ftp登陆连接
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.cmd("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()                        #退出ftpftp相关命令操作
ftp.cwd(pathname)                 #设置FTP当前操作的路径
ftp.dir()                         #显示目录下所有目录信息
ftp.nlst()                        #获取目录下的文件
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)  #上传目标文件
ftp.retrbinary("RETR filename.txt",file_handel,bufsize)  #下载FTP文件

2.FTP.quit()与FTP.close()的区别:

FTP.quit():发送QUIT命令给服务器并关闭掉连接。这是一个比较“缓和”的关闭连接方式,但是如果服务器对QUIT命令返回错误时,会抛出异常。
FTP.close():单方面的关闭掉连接,不应该用在已经关闭的连接之后,例如不应用在FTP.quit()之后。

3.ftp简单的上传与下载:

#-*- coding:utf-8 -*-
from ftplib import FTP
import time
import tarfiledef ftpconnect(host, username, password):ftp = FTP()#ftp.set_debuglevel(2)         #打开调试级别2,显示详细信息ftp.connect(host, 21)          #连接ftp.login(username, password)  #登录,如果匿名登录则用空串代替即可return ftpdef downloadfile(ftp, remotepath, localpath):bufsize = 1024                #设置缓冲块大小fp = open(localpath,'wb')     #以写模式在本地打开文件ftp.retrbinary('RETR ' + remotepath, fp.write, bufsize) #接收服务器上文件并写入本地文件ftp.set_debuglevel(0)         #关闭调试fp.close()                    #关闭文件def uploadfile(ftp, remotepath, localpath):bufsize = 1024fp = open(localpath, 'rb')ftp.storbinary('STOR '+ remotepath , fp, bufsize) #上传文件ftp.set_debuglevel(0)fp.close()                                    if __name__ == "__main__":ftp = ftpconnect("******", "***", "***")downloadfile(ftp, "***", "***")uploadfile(ftp, "***", "***")ftp.quit()

三. 图片管理中心数据上传
1.Jenkins执行完任务,将生成的失败截图上传图片管理中心

# -*- coding:utf-8 -*-
import sys
import os
from ftplib import FTP# 需要创建的文件夹名称,与质量中心执行任务的编号一致
dirName = sys.argv[1]# 建立连接
def ftp_connect():ftp = FTP()ftp.connect("10.9.8.*", "21", timeout=10)ftp.login("timen.xu", "xyt123456")return ftp# 上传文件
def upload_file(ftp, remote_path, local_path):buf_size = 1024fp = open(local_path, 'rb')ftp.storbinary('STOR ' + remote_path, fp, buf_size)ftp.set_debuglevel(0)fp.close()# 主方法
if __name__ == '__main__':ftp_conn = ftp_connect()ftp_conn.mkd("/" + dirName + "/")pic_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) + "/screenshots/"for pic_name in os.walk(pic_path):for pic in pic_name[2]:upload_file(ftp_conn, "/" + dirName + "/" + pic, pic_path + pic)ftp_conn.quit()

总结:
Python ftplib虽然函数有限,提供了简单的几个函数,但实现了最基本的上传下载功能,可以用于自动化部署文件下载,日志文件下载等。

参考:
Python ftplib模块

Python ftplib实现图片管理中心相关推荐

  1. python之WEB开发:图片管理

    1:背景图片管理 <body background="E:/PyCharm 2020.1.1/project/MySite/static/image/short_detect/inde ...

  2. 计算机毕业设计Python+uniapp+安卓养老管理APP(WEB+APP+LW)

    计算机毕业设计Python+uniapp+安卓养老管理APP(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ py ...

  3. python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)...

    python操作mysql⑥新闻管理后台功能的完善(增.删.改.查) 安装表单验证 D:\python\python_mysql_redis_mongodb\version02>pip inst ...

  4. python opencv 内存泄露_解决python中显示图片的plt.imshow plt.show()内存泄漏问题

    当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...

  5. python plt.show_解决python中显示图片的plt.imshow plt.show()内存泄漏问题

    当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...

  6. python 制定识别图片的某些区域_python批量识别图片指定区域文字内容

    Python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根 ...

  7. ie浏览器在线使用_关于登录深圳市住房公积金管理中心网站在线办理平台的温馨提示...

    各住房公积金缴存单位.职工: 为进一步提高用户使用安全性,我中心对网站在线办理平台系统进行了安全优化,电脑终端用户使用WinXP. Win 7和Win10系统自带的IE浏览器访问我中心网站在线办理平台 ...

  8. Python + Tkinter:图片浏览器(二)

    Python + Tkinter:图片浏览器(二) 前言 说明 改进 功能 图片导航 显示上一张高清图片 显示下一张高清图片 缩略图导航 缩略图列表 缩略图上一页 缩略图下一页 缩略图指引 图片管理 ...

  9. python django 个人图片网站

    python django 个人图片网站 pythondjango 图片管理展示系统 pythondjango图片管理系统 pythondjango 图片展示网站 后端:python django 数 ...

最新文章

  1. Tomcat定时任务
  2. HEALTHY LIFE OPENCART 自适应主题模板 ABC-0133
  3. Response 输出文件流过程中的等待效果
  4. wxpython 安装_下载和安装wxPython
  5. files函数提取文件名HTML,Javascript – 如何从文件input控件提取文件名
  6. ios html5 网页取消默认样式
  7. C++轮子队-第三周(需求改进原型设计)
  8. LeetCode 66 加一
  9. 银行界加强计算机病毒管理,银行计算机管理系统维护现状与对策研究(7.12).doc...
  10. sshclientCRT连接linux使用技巧
  11. 在启动时从配置文件中读取对象
  12. 小白学python3实战做量化分析平台_Python3 量化分析从小白到破产笔记
  13. 对文件夹添加共享属性!
  14. 数据结构课程设计c语言-校园导游系统
  15. 安装nvm下载node,npm以及配置的全过程。解析npm下载包使用 -v指令 发现下载的包不存在的原因。
  16. 大数据开源框架环境配置(一)——安装VMware
  17. 计算机是如何计算 log 函数的?
  18. Hive解决return code 3问题
  19. Ubuntu VirtualBox 安装问题解决
  20. 学科基本结构理论-布鲁纳学习理论

热门文章

  1. 《Photoshop图像合成专业技法(修订版)》—第1章1.3节抠取头发
  2. 073 定积分基本公式牛顿-莱布尼茨公式证明
  3. 灾难后中国文化的反思
  4. 移动无限流量卡物联网卡优缺点对比!
  5. k8s添加promethues-operater作为监控后无法监控kube-proxy的解决方法
  6. DHH在RailsConf 2011大会上的主题演讲不完全翻译(主题是Rails框架的最新进展)
  7. 再树行业标杆:华硕笔记本发布多款重磅新品
  8. TCP和UDP协议的主要特点和应用场合
  9. GitHub开源推荐 | 炫酷的Material风格Qt控件
  10. HPL+Openmpi+GOTOBLAS2