python脚本为已创建的ios .h和.m文件添加费代码

# -*- coding: utf-8 -*-

import random

import os


def getArray():

    first = "abcdefghijklmnopqrstuvwxyz"

    second = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    third = "1234567890"

    number = "345"

    index = 0

    for i in range(500):

        final=(random.choice(first))

        index = random.randint(3, 5)

        for i in range(index):

            final+=(random.choice(first))

        final += (random.choice(second))

        for i in range(index):

            final+=(random.choice(third))

        array.append(final)

classArray = ['NSString','UILabel','NSDictionary','NSData','UIScrollView','UIView','UITextView','UITableView','UIImageView']#.h文件里属性的类型从这个数组里随机选

viewArray = ['UILabel','UIScrollView','UIView','UITextView','UITableView','UIImageView']#.m文件里创建的元素的类型从这个数组里随机选

array = []

getArray()#用于生成.h和.m文件中将要用的属性名

array = list(set(array))


#.h文件添加废代码

def HFileAddMj(file_path,old_str1,old_str2,old_str3,old_str4,old_str5):

    

    file_data = ""

    Ropen=open(file_path,'r')

    for line in Ropen:

        nameStr = random.choice(array)

        className = random.choice(classArray)

        if old_str1 in line:

            line += '\n\n/*********mjbwenjian**********/\n@property(nonatomic,strong)'+className +' * '+nameStr+';\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)#防止创建的属性名重复(创建一个从数组中删除一个)

        elif old_str2 in line:

            line += '\n\n/*********mjbwenjian**********/\n@property(nonatomic,strong)'+className +' * '+nameStr+';\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str3 in line:

            line += '\n\n/*********mjbwenjian**********/\n@property(nonatomic,strong)'+className +' * '+nameStr+';\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str4 in line:

            line += '\n\n/*********mjbwenjian**********/\n@property(nonatomic,strong)'+className +' * '+nameStr+';\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str5 in line:

            line += '\n\n/*********mjbwenjian**********/\n@property(nonatomic,strong)'+className +' * '+nameStr+';\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        else:

            file_data += line

    Ropen.close()

    Wopen=open(file_path,'w')

    Wopen.write(file_data)

    Wopen.close()

    print(file_data)


#.m文件添加废代码

def MFileAddMj(file_path,old_str1,old_str2,old_str3,old_str4,old_str5,old_str6,old_str7):

    

    file_data = ""

    Ropen=open(file_path,'r')#读取文件

    for line in Ropen:

        nameStr = random.choice(array)

        className = random.choice(viewArray)

        if old_str1 in line:#如果.h文件中的某一行里包含old_str,则往这一行添加一下语句

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+nameStr+'.userInteractionEnabled = YES;\n'+nameStr+'.layer.masksToBounds = YES;'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)#防止创建的元素名重复(创建一个从数组中删除一个)

        elif old_str2 in line:

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+nameStr+'.layer.borderWidth = 1;'+nameStr+'.clipsToBounds = YES;\n'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str3 in line:

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+nameStr+'.backgroundColor = [UIColor whiteColor];'+nameStr+'.layer.borderColor = [[UIColor greenColor] CGColor];'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str4 in line:

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+nameStr+'.backgroundColor = [UIColor whiteColor];'+nameStr+'.layer.borderColor = [[UIColor greenColor] CGColor];'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str5 in line:

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+nameStr+'.backgroundColor = [UIColor whiteColor];'+nameStr+'.layer.borderColor = [[UIColor greenColor] CGColor];'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str6 in line:

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+nameStr+'.backgroundColor = [UIColor whiteColor];'+nameStr+'.layer.borderColor = [[UIColor greenColor] CGColor];'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        elif old_str7 in line:

            line += '\n\n/*********mjbwenjian**********/\n'+className +' * '+nameStr+' = '+'[['+className+' alloc]initWithFrame:CGRectMake('+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+','+str(random.randint(0,100))+')];\n'+nameStr+'.backgroundColor = [UIColor whiteColor];'+nameStr+'.layer.borderColor = [[UIColor greenColor] CGColor];'+' '+nameStr+'.layer.cornerRadius ='+str(random.randint(5,10))+';\n'+'\n/*********mjbwenjian**********/\n\n'

            file_data += line

            array.remove(nameStr)

        

        else:

            file_data += line

    Ropen.close()

    Wopen=open(file_path,'w')

    Wopen.write(file_data)

    Wopen.close()

    print(file_data)





def file_name(file_dir):

    for root, dirs, files in os.walk(file_dir):

        #print(root) #当前目录路径

        #print(dirs) #当前路径下所有子目录

        print(files) #当前路径下所有非目录子文件

        fileNameArray = files

        #遍历文件夹下的.h和.m文件并添加废代码

        for file in files:

            if '.h' in file:#file_dir+'/'+file含义是file_dir文件夹下的file文件

                HFileAddMj(file_dir+'/'+file, "l;", "m;","n;","q;","y;")#往凡是以"l;", "m;","n;","q;","y;"这些中的某一个结尾的oc语句后添加费代码

            if '.m' in file:

                MFileAddMj(file_dir+'/'+file, "n];", "w];","m];","c];","p];","q];","l];")#往凡是以"n];", "w];","m];","c];","p];","q];","l];"这些中的某一个结尾的oc语句后添加费代码

#要修改的文件所在的文件夹路径

file_floadPath = '/Users/zhoujinglin/Desktop/python-H-M'#要修还得文件所在的文件夹路径


file_name(file_floadPath)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

义中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值