当前位置:脚本大全 > > 正文

python程序怎么打包(Python 实现文件打包、上传与校验的方法)

时间:2022-03-29 10:33:14类别:脚本大全

python程序怎么打包

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

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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • # -*- 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个功能相互独立,可分开运行

  • ?
  • 1
  • 2
  • 3
  • fab -f file_handler.py tar_task  #文件打包操作
  • fab -f file_handler.py put_task  #文件上传操作
  • fab -f file_handler.py check_task #文件校验操作
  • 也可以通过以下命令组合在一起运行

  • ?
  • 1
  • fab -f file_handler.py execute
  • 以上这篇Python 实现文件打包、上传与校验的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。

    原文链接:https://blog.csdn.net/l1028386804/article/details/79042656

    上一篇下一篇

    猜您喜欢

    热门推荐