美文网首页
iOS - 使用Python脚本创建新文件并复制代码

iOS - 使用Python脚本创建新文件并复制代码

作者: Linghit_iOS | 来源:发表于2020-05-07 00:12 被阅读0次

    Create by xinyuan 2020/05/06

    • 目的:
      有时候我们在一份Category需要在多个项目工程上使用,这个时候我们经常就会有一个创建复制粘贴的步骤。为了减少这多余的操作时间,所以就有了一个这样的需求出现。
    • 实现原理:
      通过Python简单的操作对文件的创建以及内容的复制。

    一、脚本内容

    • 文件目录
    5eb27a7b32f60.png
    可以看到我们主要文件就是`command.sh`和`copy.py`
    
    • 1、command.sh 内容
    #!/bin/bash
    echo '输入旧前缀'
    read old_prefix
    echo '输入新前缀'
    read new_prefix
    echo '输入新项目名称'
    read new_project_name
    python copy.py --old_prefix $old_prefix --new_prefix $new_prefix --new_project_name $new_project_name
    
    • 2、copy.py 内容
    #! /usr/bin/python
    # -*- coding: UTF-8 -*-
    
    import os
    import string
    import shutil
    import sys
    import time
    import argparse
    
    #忽略文件列表
    ignore_file_list = [".DS_Store"]
    
    
    def file_name(file_dir):
    
        for root, dirs, files in os.walk(file_dir):
    
            newRoot = root.replace("Old","New")
            os.mkdir(newRoot)
            for fileName in files:
                need_ignore = None
                for ignore_folder in ignore_file_list:
                    if fileName == ignore_folder:
                        need_ignore = 1
                        break
                
                if need_ignore:
                    continue
                
                filename = os.path.join(root, fileName)
                file_object = open(filename,'r')
                all_the_text = file_object.read( )
                newText = all_the_text.replace(old_prefix,new_prefix)
                arr = newText.split('\n')
                nowTime = time.strftime("%Y/%m/%d", time.localtime())
                created = "//  Created by copy on " + nowTime
                arr[4] = created;
                newProjectName = "//  " + new_project_name
                arr[2] = newProjectName;
                    
                newTextss = '\n'.join(arr)
                newFileName = fileName.replace(old_prefix,new_prefix)
                newFile = os.path.join(newRoot, newFileName)
                fp = open(newFile,'w')
                fp.write(newTextss)
                fp.close()
    
    
    def parse_args():
        global script_path, proj_ios_path
        parser = argparse.ArgumentParser(description='复制类修改前缀工具.\n')
        parser.add_argument('--old_prefix', dest='old_prefix', type=str, required=False, help='替换前类名前缀')
        parser.add_argument('--new_prefix', dest='new_prefix', type=str, required=False, help='替换后类名前缀')
        parser.add_argument('--new_project_name', dest='new_project_name', type=str, required=False, help='新项目名称')
        args = parser.parse_args()
        return args
    
    def main():
        global old_prefix
        global new_prefix
        global new_project_name
        
        app_args = parse_args()
        old_prefix = app_args.old_prefix
        new_prefix = app_args.new_prefix
        new_project_name = app_args.new_project_name
        print "开始生成copy文件"
        filename = os.path.join(os.getcwd(), "New")
        del_list = os.listdir(filename)
        for f in del_list:
            file_path = os.path.join(filename, f)
            if os.path.isfile(filename):
                os.remove(filename)
            elif os.path.isdir(filename):
                shutil.rmtree(filename)
    
        target_folder = os.path.join(os.getcwd(), "Old")
    
        file_name(target_folder)
    
        print "生成copy文件成功"
    
    if __name__ == "__main__":
        main()
    
    

    二、操作步骤

    • 1、 我们需要将command.shcopy.pyNew以及Old放在同一个目录下。
    • 2、将把需要复制的文件放入Old下,例如我这边是需要复制下面的文件
      5eb27f5cbd7f2.png
    • 3、打开终端 输入
    sh command.sh 
    
    • 4、根据自己的需求输入相关内容
    5eb28096344e0.png
    • 5、最后我们就可以看到我们需要的文件啦~


      5eb2818532b63.png

    相关文章

      网友评论

          本文标题:iOS - 使用Python脚本创建新文件并复制代码

          本文链接:https://www.haomeiwen.com/subject/rqpnghtx.html