圆月山庄资源网 Design By www.vgjia.com
首先安装pip install ruamel.yaml
用于修改yaml文件
#coding:utf-8 from ruamel import yaml def up_yml(ip_server): with open('./../docker-compose-demo.yml', encoding="utf-8") as f: content = yaml.load(f, Loader=yaml.RoundTripLoader) # 修改yml文件中的参数 content['service']['memo_query']['server_ip'][0] = 'mysql_host={}'.format(ip_server) with open('./../docker-compose.yml', 'w', encoding="utf-8") as nf: yaml.dump(content, nf, Dumper=yaml.RoundTripDumper) if __name__ == '__main__': up_yml(ip_server='0.0.0.0')
修改前:
version: '1' service: memo_query: image: python:2.0 restart: always server_ip: - mysql_host=192.168.1.1
修改后:
version: '1' service: memo_query: image: python:2.0 restart: always server_ip: - mysql_host=0.0.0.0
补充知识:解决 Python ruamel.yaml 读写 yaml 文档 format 格式不一致问题
使用 ruamel.yaml 过程中发现输入输出格式不一致,网上找到一个解决方案:
input:
ChuaTony: 公司: 文传 联络: - 公司: '1422031030' - 手机: '18650144578' - 住家: '2233068479' 住址: - 公司: 褔建。 - 住家: 台中。 交通: 无 附件: Tom: 公司: 天褔 联络: - 公司: '1422031030' - 手机: '18650123456' - 住家: '2233061234' 住址: - 公司: 褔建。 - 住家: 台北。 交通: 自行车 附件:
output: ChuaTony: 交通: 无 住址: - 公司: 褔建。 - 住家: 台中。 公司: 文传 联络: - 公司: '1422031030' - 手机: '18650144578' - 住家: '2233068479' 附件: null Tom: 交通: 自行车 住址: - 公司: 褔建。 - 住家: 台北。 公司: 天褔 联络: - 公司: '963852741' - 手机: '18650123456' - 住家: '2233061234' 附件: null
格式不一致
使用:
ruamel.yaml.load(Loader=ruamel.yaml.RoundTripLoader) ruamel.yaml.dump(Dumper=ruamel.yaml.RoundTripDumper)
或
ruamel.yaml.round_trip_load() ruamel.yaml.round_trip_dump()
来解决
修改程式码如下:
#!/usr/bin/env python3 # -*- coding: utf-8 -*- ' a YAML module ' __author__ = 'Chua Tony' import ruamel.yaml #开档 with open("人资.yaml", "r",encoding="utf-8") as docs: try: #alldata = ruamel.yaml.load(docs, Loader=ruamel.yaml.RoundTripLoader) #使用 Loader=ruamel.yaml.RoundTripLoader alldata = ruamel.yaml.round_trip_load(docs) except ruamel.yaml.YAMLError as exc: print(exc) #印出 for data in alldata: print(alldata[data]['联络']) #修改 alldata['Tom']['联络'][0]['公司']='963852741' #写档 with open('人资1.yaml', 'w+', encoding='utf8') as outfile: #ruamel.yaml.dump(alldata, outfile, default_flow_style=False, allow_unicode=True, Dumper=ruamel.yaml.RoundTripDumper, indent=2, block_seq_indent=2) #使用 Dumper=ruamel.yaml.RoundTripDumper ruamel.yaml.round_trip_dump(alldata, outfile, default_flow_style=False, allow_unicode=True, indent=2, block_seq_indent=2) #indent:缩进 block_seq_indent:区块缩进
output:
ChuaTony: 公司: 文传 联络: - 公司: '1422031030' - 手机: '18650144578' - 住家: '2233068479' 住址: - 公司: 褔建。 - 住家: 台中。 交通: 无 附件: Tom: 公司: 天褔 联络: - 公司: '963852741' - 手机: '18650123456' - 住家: '2233061234' 住址: - 公司: 褔建。 - 住家: 台北。 交通: 自行车 附件:
搞定!!!
以上这篇python读取yaml文件后修改写入本地实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月02日
2024年11月02日
- 群星.2003-存为爱2CD【环球】【WAV+CUE】
- 韩磊《试音天碟》高清音频[WAV+CUE]
- 邓涛《寂寞蒲公英(黑胶CD)》[WAV]
- 江志丰.2011-爱你的理由【豪记】【WAV+CUE
- 群星《传承-太平洋影音45周年纪念版 (CD2)》[320K/MP3][140.01MB]
- 群星《传承-太平洋影音45周年纪念版 (CD2)》[FLAC/分轨][293.29MB]
- 首首经典《滚石红人堂I 一人一首成名曲 4CD》[WAV+CUE][2.5G]
- s14上单t0梯度怎么排名 s14世界赛上单t0梯度排行榜
- tes目前进了几次s赛 LPL队伍tes参加全球总决赛次数总览
- 英雄联盟巅峰礼赠什么时候开始 2024巅峰礼赠活动时间介绍
- 冯骥发文谈睡觉重要性 网友打趣:求求你先做DLC
- 博主惊叹《少女前线2》万圣节大雷皮肤:这真能过审吗?
- 《生化危机8》夫人比基尼Mod再引骂战:夸张身材有错吗?
- 江蕙.1994-悲情歌声【点将】【WAV+CUE】
- 戴娆.2006-绽放【易柏文化】【WAV+CUE】