zoukankan      html  css  js  c++  java
  • python脚本减化自己的工作量

    初学python,在项目中有时使用的是php,在升级的时候,由于是增量提交升级,每次都需要把要升级的文件按照相应文件夹方式放好,在线上直接覆盖整个文件夹就可以完成升级。

    这种情况,每次都需要把文件夹建立好,实在是很麻烦,就写了一段python程序来拷贝生成修改过的程序到新的文件夹,稍微减化一下工作。

    import os
    import shutil
    
    def copyFiles(srcDir, destDir):
        for file in os.listdir(srcDir):
            sourceFile = os.path.join(srcDir, file)
            destFile = os.path.join(destDir, file)
            if os.path.isfile(sourceFile):
                if not os.path.exists(destDir):
                    os.makedirs(destDir)
                shutil.copyfile(sourceFile, destFile)
            if os.path.isdir(sourceFile):
                copyFiles(sourceFile, destFile)
    #
    parent_path = "z:/works/your_directory/"
    
    #这里是需要手工添加的需要升级的文件
    paths = """xxx/yyy/zzzz/my1.php
    xxx/yyy/my2.php"""
    
    #将paths按\n分割,并去除前后空格,建立目录
    for path in paths.split("\n"):
        path = path.strip('\t')
        to_mk = os.path.dirname(path)
        #print to_mk
        if not os.path.isdir(to_mk):
            os.makedirs(to_mk)
    
    for path in paths.split("\n"):
        path = path.strip('\t')
        src = parent_path + path
        #文件直接复制
        if os.path.isdir(src):
            copyFiles(src,path)   
        #文件夹就递归复制
        elif os.path.isfile(src):
            shutil.copyfile(src,path)

    因为真正开始需要覆盖的目录是从xxx开始的,所以把父目录提取出来了,生成的结构也就是paths中定义的那样,直接覆盖线上。

    不过这个实现上比较简单,接下来的想法是想做成图形界面对于需要升级的文件打上勾就可以了,或是通过与git交互把需要升级的文件放到新文件夹中。

  • 相关阅读:
    Android基础知识
    使用Android Studio和Genymotion模拟器搭建Andriod开发环境
    【原】Java开发环境搭建
    【转】JavaScript顶级对象参考模型
    【转】在.Net中关于AOP的实现
    【转】各版本IIS下ASP.net请求处理过程区别
    【转】我们应该如何去了解JavaScript引擎的工作原理
    Linux系统编程(27)——线程控制
    Linux系统编程(26)——守护进程
    Linux系统编程(25)——终端
  • 原文地址:https://www.cnblogs.com/knockon/p/2736123.html
Copyright © 2011-2022 走看看