Python 实现文件打包、上传与校验的方法

不多说,我们直接上源码:

# -*- coding:UTF-8 -*-
'''
实现文件打包、上传与校验
Created on 2018年1月12日
@author: liuyazhuang
'''

from fabric.api import *
from fabric.context_managers import *
from fabric.contrib.console import confirm

env.user = 'root'
env.hosts = ['10.2.2.2']
env.password = 'cardio-2017'

@task
@runs_once
def tar_task():  #本地打包任务函数,只限执行一次
  with lcd("/data/logs"):
    local("tar -czf access.tar.gz access.log")

@task
def put_task():   #上传文件任务函数
  run("mkdir -p /nginx/logs")
  with cd("/nginx/logs"):
    #put(上传操作)出现异常时,继续执行,非终止
    with settings(warn_only = True):
      result = put("/data/logs/access.tar.gz", "/nginx/logs/access.tar.gz")
    if result.failed and not confirm("put file failed, Contiunue[Y/N]?"):
      #出现异常时,确认用户是否继续,(Y继续)
      abort("Aborting file put task!")

@task
def check_task():  #校验文件任务函数
  with settings(warn_only = True):
    #本地local命令需要配置capture=True才能捕获返回值
    lmd5 = local("md5sum /data/logs/access.tar.gz", capture=True).split(' ')[0]
    rmd5 = run("md5sum /nginx/logs/access.tar.gz").split(' ')[0]
    #对比本地与远程文件的md5信息
    if lmd5 == rmd5:
      print "OK";
    else:
      print "ERROR"

@task
def execute():   #统一执行tar_task()、put_task()、check_task()
  tar_task()
  put_task()
  check_task()

本实例分别定义了3个功能函数,实现了文件的打包、上传和校验的功能,且3个功能相互独立,可分开运行

fab -f file_handler.py tar_task  #文件打包操作
fab -f file_handler.py put_task  #文件上传操作
fab -f file_handler.py check_task #文件校验操作

也可以通过以下命令组合在一起运行

fab -f file_handler.py execute

以上这篇Python 实现文件打包、上传与校验的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python脚本文件打包成可执行文件的方法

    将Python脚本文件包装成可执行文件,其目的有二: 一则: 不需要依赖Python编译器就可以运行软件 二则: 不想让自己的源码公布出去 常用的工具有: py2exe.cx_freeze等 [工具:py2exe] 安装py2exe 安装该工具很简单: 只需要从官方网站:http://www.py2exe.org/下载与版本对应的安装程序,点击下一步即可完成安装. 安装后,执行import py2exe,不报错则表示安装成功! 复制代码 代码如下: >>> import py2exe 

  • Python打包可执行文件的方法详解

    本文实例讲述了Python打包可执行文件的方法.分享给大家供大家参考,具体如下: Python程序需要依赖本机安装的Python库,若想在没有安装Python的机器上运行,则需要打包分发,目前有两个比较好用的工具:PyInstaller和py2exe.其中py2exe应用在windows下,而PyInstall则可应用windows.Linux以及Mac OS X上. 这里只贴一段py2exe打包的实例代码.(py2exe下载地址) #coding=utf-8 from distutils.co

  • 基于python3实现socket文件传输和校验

    基于socket的文件传输并进行MD5值校验,供大家参考,具体内容如下 文件传输分为两个类,一个是服务端,一个是客户端. 客户端发起发送文件或接收文件的请求,服务端收到请求后接收或发送文件,最后进行MD5值的校验 socket数据通过struct模块打包 需要发送文件到服务端时,调用sendFile函数,struct包内包含文件信息.文件大小.文件MD5等信息,服务端接收到文件后进行MD5值校验,校验成功后则返回成功 需要从服务器下载文件时,调用recvFile函数,收到文件后进行MD5校验 c

  • Python代码的打包与发布详解

    在python程序中,一个.py文件被当作一个模块,在各个模块中定义了不同的函数.当我们要使用某一个模块中的某一个函数时,首先须将这个模块导入,否则就会出现函数未定义的情况. 下面记录的是打包及安装包的方法. 本文示例是建立一个模拟登录的程序: logIn.py文件代码如下: pwd=int(raw_input('please input your passward: ')) if pwd==123: print 'success' else: print 'error' 一.打包 1.先建立一

  • Python selenium文件上传方法汇总

    文件上传是所有UI自动化测试都要面对的一个头疼问题,今天博主在这里给大家分享下自己处理文件上传的经验,希望能够帮助到广大被文件上传坑住的seleniumer. 首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种就比较复杂,通过js.flash等实现,标签非input 我们分别对这两种进行分析: 1.input标签 众所周知,input标签是可以直接send_keys的,这里也不例外,来看代码示例: 示例网址:http://www.sahitest.com/demo

  • Python打包文件夹的方法小结(zip,tar,tar.gz等)

    本文实例讲述了Python打包文件夹的方法.分享给大家供大家参考,具体如下: 一.zip import os, zipfile #打包目录为zip文件(未压缩) def make_zip(source_dir, output_filename): zipf = zipfile.ZipFile(output_filename, 'w') pre_len = len(os.path.dirname(source_dir)) for parent, dirnames, filenames in os.

  • Python 实现文件打包、上传与校验的方法

    不多说,我们直接上源码: # -*- coding:UTF-8 -*- ''' 实现文件打包.上传与校验 Created on 2018年1月12日 @author: liuyazhuang ''' from fabric.api import * from fabric.context_managers import * from fabric.contrib.console import confirm env.user = 'root' env.hosts = ['10.2.2.2'] e

  • python实现文件分片上传的接口自动化

    背景和目的: 利用python request 编写脚本测试公司系统的文件上传接口.前端读取文件的大小然后文件分片传给后端,后端将每一片数据重新组合成文件.大概的过程是:前端将整个文件的md5.size(大小).name(文件名).ext(文件后缀).totalchunk(分片总数)与分片文件的md5.chunk(分片数据),chunkindex(当前分片文件的下标)等传给后台,后台取得这些数据后,通过chunkindex将每一片数据重组,重组完后,进行md5校验,判断文件上传是否成功.我只需要

  • 使用Python操作FTP实现上传和下载的方法

    搭建ftp服务器server端 # -*- coding:utf-8 -*- from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer # 实例化DummyAuthorizer来创建ftp用户 authorizer = DummyAuthorizer() # 参数:用户名,密码,目录,权限 a

  • 在SpringMVC框架下实现文件的上传和下载示例

    在eclipse中的javaEE环境下:导入必要的架包 web.xml的配置文件: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation=&

  • 如何将自己的python库打包成wheel文件并上传到pypi

    新建项目 如下图,比如sigma目录是我要上传的项目,在six-sigma目录下新建三个文件,分别是LICENSE也就是开源协议,README.md文件,用于介绍自己的项目和setup.py这个配置文件,此文件配置关于项目和作者的一些信息,接下来我们一一介绍. LICENSE文件 Copyright (c) 2018 The Python Packaging Authority Permission is hereby granted, free of charge, to any person

  • Python 实现两个服务器之间文件的上传方法

    如下所示: # coding: utf-8 import paramiko import MySQLdb def main(): connection=MySQLdb.connect(host='10.10.41.22',user='root',passwd='root',db='Trojan',port=3306) cur=connection.cursor() sql ='select count(*) from blacklist;' cur.execute(sql) count = cu

  • python实现requests发送/上传多个文件的示例

    1.需要的环境 Python2.X Requests 库 2.单字段发送单个文件 在requests中发送文件的接口只有一种,那就是使用requests.post的files参数, 请求形式如下: url = "http://httpbin.org/post" data = None files = { ... } r = requests.post(url, data, files=files) 而这个files参数是可以接受很多种形式的数据,最基本的2种形式为: 字典类型 元组列表

  • python实现FTP循环上传文件

    本文实例为大家分享了python实现FTP循环上传文件的具体代码,供大家参考,具体内容如下 测试过程中,有时会用到FTP的数据流,或者需要使用FTP反复上传文件,所以写了一个FTP循环上传文件的python代码. 代码如下: #coding=utf-8 import sys import os from ftplib import FTP from time import sleep _XFER_FILE = 'FILE' _XFER_DIR = 'DIR' class Transmitter(

  • Android打包上传AAR文件到Maven仓库的示例

    1.创建 Android 库 按以下步骤在项目中创建新的库模块: 依次点击 File > New > New Module. 在随即显示的 Create New Module 窗口中,依次点击 Android Library 和 Next. 为您的库命名,并为库中的代码选择一个最低 SDK 版本,然后点击 Finish. 2.上传aar包至Maven私服 打开新模块 build.gradle 文件,按如下说明修改: plugins { id 'com.android.library' // 库

  • Python利用fastapi实现上传文件

    目录 使用File实现文件上传 使用UploadFile实现文件上传 UploadFile的属性 设置上传文件是可选的 上传多个文件 知识点补充 使用File实现文件上传 使用Form表单上传文件,fastapi使用File获取上传的文件. 指定了参数类型是bytes:file: bytes = File(),此时会将文件内容全部读取到内存,比较适合小文件. 使用File需要提前安装 python-multipart from fastapi import FastAPI, File ​ app

随机推荐