使用python修改配置文件

1.需求

项目部署过程中,支持平板的应用在进行安卓apk打包前,需要修改一些配置文件,以适应不同的项目环境。

2.需求分析

逐行读取配置文件,匹配到对应行时,正则匹配需要修改的位置,进行替换。然后将每行读取的文件(包含替换的那一行)写到新的同名文件里。

3.实例

替换’cordove-hcp.json’文件的ip/端口及组织名 192.168.10.12:8888/xddq 替换为 192.168.1.17:8888/pebg

{
  "name": "workorder",
  "ios_identifier": "",
  "android_identifier": "",
  "update": "resume",
  "content_url": "http://172.17.1.17:8888/pebg/workorder_mgm/statics/chcp"
}

python代码为:

def modify_cordova_hcp_json_file(local_app_directory, access_address, org_code, app_module):
    """
    android-apk编译步骤2:修改cordova-hcp.json文件
    local_app_directory: 项目路径 如 '/root/workspace/workorder_mgm/'
    access_address: 访问地址 如'192.168.20.1:8888'
    org_code: 组织名,如'pebg'
    app_module: 项目名,如 'workorder_mgm'
    """
    print(
        '************modify_cordova_hcp_json_file start, access_address=%s, app_module=%s, org_code=%s************' % (
            access_address, app_module, org_code))
    # 拼接出该文件所在路径
    config_file_path = local_app_directory + 'web/src-cordova/cordova-hcp.json'
    try:
        if os.path.exists(config_file_path):
            replace_path = access_address + '/' + org_code
            file_data = ""
            with open(config_file_path, "r", encoding="utf-8") as f:
                for line in f:
                    if "content_url" in line:
                        ret = re.findall(r'\"content_url\": \"https?://(.*?/.*?)/', line)
                        if ret:
                            match_addr = ret[0]
                            line = line.replace(match_addr, replace_path)
                            print('************modify_cordova_hcp_json_file, old_addr=%s, new_addr=%s' % (match_addr, replace_path))
                    file_data += line  # 保存每一行读取到的数据(包含替换以后的那一行)
            # 最后写入同名文件进行替换
            with open(config_file_path, "w", encoding="utf-8") as f:
                f.write(file_data)
    except Exception as e:
        print('modify_cordova_hcp_json_file error, app_module=%s, e=%s' % (app_module, e))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值