您好,登录后才能下订单哦!
这篇文章主要介绍了Python如何实现文件打包、上传与校验的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严格;2、Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3、Python面向对象,能够支持面向过程编程,也支持面向对象编程;4、Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5、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如何实现文件打包、上传与校验的方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。