怎么将树存入文件中_使用configparser模块,将文件key.txt中的内容替换到目标文件中...

工作中我们经常要对一些配置文件进行批量修改,特别是集群配置是差异化的配置文件。下面是我针对调试并成功应用的脚本,有用的同学拿走不谢。

5af038ee7027b93fe6245b90b88d086d.png

1、使用说明

逻辑说明:使用configparser模块,根据关键值key.txt中的内容替换目标文件config.properties中的相关内容,将更新后的内容存入到指定路径的新文件。

文档结构:

836febc40c669e064f20c7c8b43ef4f8.png

执行方法:执行bin下configParseUpdate.py文件即可,Key.txt文件放到bin下。原始目标文件也放在bin下

效果说明:执行后会用key.txt中的关键值替换bin下原始目标文件中的关键值,保存到新的目录中。

2、源代码逻辑

#!/usr/bin/env python# -*- coding: utf-8 -*-#configParseUpdate.py'''1.使用configparser模块读取配置文件key.txt中的section,并遍历2.以遍历结果作为路径判断是否存在,不存在则创建3.逐行origL读取原文件,在每一次循环中增加循环configparser的items()方法遍历对应section下的key-value 如果origL以section中key开头,则用section的value替换4.将处理过的origL更新到新文件中'''import configparser,os,time# import shutil #此包用来复制文件,暂时不用。curtime=time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) #系统当前时间“20180902125029”用于将文件重命名dir_first=os.path.dirname(os.path.dirname(__file__)) #获取项目的路径 E:/PycharmProjects/configParseUpdatedir_second=dir_first + '/versionUpdate'#二级目录dir_third=''#三级目录dir_second+'/'+domainconfig_bak=''#备份文件dir_third + "/config.properties" + curtimeconfig_new=''#新文件 dir_third + "/config.properties"config_orig=''#原始文件dir_first + "/bin/config.properties"configKey = configparser.ConfigParser()configKey.read('key.txt')for i,domain in enumerate(configKey.sections()): print("第%s次处理%s" % (i + 1, domain)) dir_third=dir_second+'/'+domain if os.path.exists(dir_second)==False:#判断二级目录是否存在,不存在则创建 os.mkdir(dir_second) if os.path.exists(dir_third)==False:#判断三级目录是否存在,不存在则创建 os.mkdir(dir_third) config_bak = dir_third + "/config.properties" + curtime config_new = dir_third + "/config.properties" config_orig = dir_first + "/bin/config.properties" if os.path.exists(config_new): os.rename(config_new,config_bak) #重命名文件 # shutil.copyfile(config_orig,config_new) #复制文件 for lines in open(config_orig,'r') : configL=lines.rstrip() #有别文件后面有空格,怎么在保留空格的情况下换行? for list_key in configKey.items(domain): if configL.startswith(list_key[0]+'='): configL=list_key[0]+'='+list_key[1] outfile=open(config_new,'a') outfile.writelines(configL+'') outfile.close()print('处理结束,休眠3秒')time.sleep(3)

就是如此简单,在实际工作中使用起来也很方便。

406b23d51a1ee3ee52be01f3ae98d7bc.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值