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

  • 相关阅读:
    多项式插值取模哈希标记法
    AC自助机
    [OIBH] 糖果盒(Candy Box)——又一个最大子矩形
    windows phone 之ListBox数据绑定
    WP学习笔记
    为TextArea添加maxlength属性
    让整个网页(LOGO图片)色调全部变灰的方法(CSS写法)
    JS调试加断点
    Container.ItemIndex 获取到行的序号
    c# Invoke 与 BeginInvoke
  • 原文地址:https://www.cnblogs.com/knockon/p/2736123.html
Copyright © 2011-2022 走看看