美文网首页
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