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交互把需要升级的文件放到新文件夹中。

  • 相关阅读:
    Qt之数据类型转换
    [leetcode] Sudoku Solver
    调用摄像头拍照实例,摇一摇实例
    html 标签
    JavaScript 常见的六种继承方式
    js的DOM的方法和属性总结
    BOM属性方法。
    DOM 元素对象的属性方法
    完整的用户代理字符串检测
    可以跨浏览器获得窗口左边,和上边的位置
  • 原文地址:https://www.cnblogs.com/knockon/p/2736123.html
Copyright © 2011-2022 走看看