转载https://www.cnblogs.com/jiahm/category/1530828.html

大家有没有遇到过在使用Python进行yaml文件写入数据后,内容排版混乱并且丢失注释问题,非常不友好,如下图所示:

针对上述问题,简单的解决方法如下:

安装pip install ruamel.yaml

使用:

ruamel.yaml.load(Loader=ruamel.yaml.RoundTripLoader) 
ruamel.yaml.dump(Dumper=ruamel.yaml.RoundTripDumper) 
ruamel.yaml.round_trip_load() 
ruamel.yaml.round_trip_dump() 
示例代码如下:
from ruamel import yaml
def setDictYaml(self, fileDir, fileName, key, value):
with open(filePath(fileDir, fileName), 'r', encoding="utf-8") as f:
doc = yaml.round_trip_load(f)
doc[key] = value
with open(filePath(fileDir, fileName), 'w', encoding="utf-8") as f:
yaml.round_trip_dump(doc, f, default_flow_style=False)
setDictYaml(fileDir='config', fileName='config.yaml', key='password', value=123)

运行后的结果如上图所示,问题完美解决!

解决Python写入yaml后排版混乱还丢失注释问题的更多相关文章

  1. 解决python写入mysql中datetime类型遇到的问题

    解决python写入mysql中datetime类型遇到的问题 刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于 ...

  2. 解决python中csv文件中文写入问题

    一.前言 一般来说,为了方便,使用python的时候都会使用csv模块去写数据到csv文件,但是写入中文的时候,经常会报错: UnicodeEncodeError: 'ascii' codec can ...

  3. 解决TextView排版混乱或者自动换行的问题

    其实在TextView中遇到排版自动换行而导致混乱不堪的情况是非常常见的,而且导致这种问题产生的原因就是英文和中文混合输入,半角字符和全角字符混合在一起了.一般情况下,我们输入的数字.字母以及英文标点 ...

  4. python安装OpenCV后import cv2报错解决办法

    现在python安装完成后,运行pip install opencv-python安装成功后,import cv2时会失败 看到有人给出下载https://www.lfd.uci.edu/~gohlk ...

  5. python安装完毕后,提示找不到ssl模块的解决步骤

    转载自 醇酒醉影 python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, ...

  6. python安装完毕后,提示找不到ssl模块的解决方示

    python安装完毕后,提示找不到ssl模块: [root@localhost ~]# python2.7.5 Python 2.7.5 (default, Jun 3 2013, 11:08:43) ...

  7. 孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录

     孤荷凌寒自学python第五十三天使用python写入和修改Firebase数据库中记录 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数 ...

  8. 转:解决Python中文编码问题

    Python 文本挖掘:解决Python中文编码问题 转于:http://rzcoding.blog.163.com/blog/static/2222810172013101785738166/   ...

  9. 看透“0”、“1”逻辑,轻松解决Python中文乱码

    Python中关于"中文乱码"的问题,现规整如下,并统一回答 同学问: jacky:我在爬取XX网站信息的时候,中文怎么总是显示的乱码? jacky:UTF-8与GBK到底是个啥? ...

  10. 笔记||Python3进阶之读取和写入yaml配置文件

    yaml是专门用来写配置文件的语言,简洁强大,远比JSON格式方便,yaml在python语言中有PyYAML安装包. - 首先需要pip安装:pip install pyyaml - yaml基本语 ...

随机推荐

  1. SHR常用f7[更新ing]

    <field id="unit" name="unit" label="单位" dataType="F7" uip ...

  2. EOVS 83开局

    目录 公司筹备阶段 第一季 公司筹备阶段 第一季

  3. 计算2-expr命令举例

    一.expr命令 1.语法和功能 只能用于整数运算和字符串长度.匹配等运算处理 expr 2 + 2 expr 2 - 2 expr 2 \* 2 expr 2 / 2 i=5;i=`expr $1 ...

  4. next.js引入antd报错

    首先在pages根目录下新建一个_app.js   ,代码如下,然后再引入对应antd组件即可 import App from 'next/app' import 'antd/dist/antd.cs ...

  5. Spring core rce 0day(CVE-2022-22965)视频教程附工具

    Spring 远程代码执行漏洞,先上图,视频晚点上传

  6. sudo: port: command not found 报错解决方案

    mac本安装graphviz的方法是: sudo port install graphviz 执行报错: sudo: port: command not found 其实是未设置环境变量,执行下面的语 ...

  7. idea常用快捷键记录

    实用编写代码辅助快捷键 Ctrl+Alt+V 提出选中内容为局部变量 Ctrl+Backspace 按单词删除 Ctrl+D 复制行 Ctrl+Y 删除当前行 Ctr+Shift+U 大小写转化 Sh ...

  8. Kafka的启动 并创建topic

    一.进入到kafka的bin目录下,运行 ./kafka-server-start.sh -daemon /app/kafka/config/server.properties 注意:如果是0.9版本 ...

  9. bzoj 4573

    LCT神题... 首先暴力的做法就是每次在一个区间上link,然后暴力查询,时间复杂度$O(爆炸)$ 但是我们可以发现的是,每棵树之间互不影响! 因此我们可以考虑离线之后分别统计每棵树 但是这样做其实 ...

  10. Write down for Segments, Extents, and Blocks

    Segments, Extents, and Blocks(段.区.块) • Segments exist in a tablespace. • Segments are collections of ...