• Python脚本备份


    #!/usr/bin/python3
    #  -*-  coding:utf-8  -*-  # 保证源程序可以输入汉字
    
    print bool([])   # 任何为零的数字或空集(空列表、空元组和空字典等)均为False
    radius = input(u"输入半径:  ");
    radius_float = float(radius);
    area=radius_float**2*3.1415926;  # **是平方运算,pow()也可以执行平方运算
    print u'面积:%f'%(area)
     
    # coding:utf-8
    import os
    import re
    import shutil
    from subprocess import Popen, PIPE
    
    safe_imgs_path = os.path.dirname(__file__)
    destination_path = safe_imgs_path.split('GlobalRobot')[0] + 'GlobalApp'
    proj_path = destination_path + '/GlobalApp.xcodeproj/project.pbxproj'
    
    
    def getBundleId():
        pattern = 'PRODUCT_BUNDLE_IDENTIFIER = (.*);'
        bundle_id = None
        with open(proj_path) as f:
            s = ''.join(f.readlines())
            res = re.findall(pattern, s)
            if len(res):
                bundle_id = res[0]
            f.close()
        return bundle_id
    
    
    def handle_safeImage():
        bundle_id = getBundleId()
        if bundle_id:
            cmd = 'cp {img_path}/{img_name}.jpg {des_path}/{des_name}.jpg'.format(img_path=safe_imgs_path, img_name=bundle_id,
            des_path=destination_path,
            des_name='yw_1222_07e8')
            Popen(cmd, shell=True)
    
    
    def change_robotCode():
        bundle_id = getBundleId();
        normal_name='a1myR6pZui3';
        test_name='a1wYaPBqf6g';
        print bundle_id;
        root_path=safe_imgs_path.split('GlobalRobot')[0];
        logidPath = root_path + 'GlobalRobot/GLBRobot/GLBConfig/GLBRobotConfig.bundle/GLBRobotLogicIdMap.json'
        router_path = root_path + 'GlobalRobot/GLBRobot/GLBConfig/GLBRobotConfig.bundle/GLBRobotRouteTable.json'
        if bundle_id == 'com.eco.global.app':
             changeDX5ClassName(logidPath,normal_name,test_name)
             changeDX5ClassName(router_path,normal_name,test_name)
        elif bundle_id =='com.vivien.demo':
            changeDX5ClassName(logidPath,test_name,normal_name)
            changeDX5ClassName(router_path, test_name, normal_name)
        return;
    
    def changeDX5ClassName(fileName,toName="a1myR6pZui3",from_name='a1wYaPBqf6g'):
        print 'toName'+toName+' ,fromName:'+from_name   ;
        file_path = fileName;
        backup_path = file_path + '.bak'
        if not os.path.exists(backup_path):
            shutil.copy2(file_path, backup_path)
            with open(file_path, mode='r') as fr, open(backup_path, mode='w') as fw:
                for line in fr:
                    re_sub_list = re.sub(from_name, toName, line)  # 这里用re.sub进行替换后放入 re_sub_list中
                    print('re_sub_list'+re_sub_list);
                    fw.writelines(re_sub_list)  # 将列表中的每一行进行写入。writelines是将序列对象中的每一行进行写入。
                os.remove(file_path);
                os.rename(backup_path, file_path);
    
    
    
    if __name__ == '__main__':
        print "==============================开始替换安全图片=============================="
        handle_safeImage()
        print "==============================完成替换安全图片=============================="
        print "==============================开始更换DX5 Class=============================="
        change_robotCode()
        print "==============================完成更换DX5 Class=============================="
  • 相关阅读:
    POJ3481(待完善版本,请看注释)
    Heap_Sort金老师模板
    poj2255(Tree_Recover)
    快慢指针
    Link_List
    Perl_Tkx_Canvas绘图功能函数介绍
    配置管理
    变更管理
    合同管理
    收尾存在的问题
  • 原文地址:https://www.cnblogs.com/developer-qin/p/10297093.html
Copyright © 2020-2023  润新知