读取yaml文件

本文介绍了Python中使用`open()`和`with open()`两种方式读取yaml文件的方法,强调了`with open()`的异常处理优势。同时,详细说明了读取项目中yaml文件时需要注意的点,如使用`yaml.FullLoader`避免报错,以及读取后的数据是字典格式,便于后续处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、open()和with open()

🌺open()

open()一般用于本地文件的读写操作,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

open()语法

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):

参数:

  • file: 必需,是文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8,中文可以是GBK
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
file=open(r"C:\code\trading_system_autotest\config\environment.yaml","r",encoding="utf-8")
a=file.read()
print(a)
file.close()

open()方法有一个缺点就是:open()需要配合close()使用,如果文件读取过程发生i/o异常,会造成整个程序的崩溃,后面的close()就无法执行了,系统就无法释放这个文件。

优化:使用try……except……fianlly,这样即使读取异常了,一会执行后面的close()方法

(输入异常捕获有个快捷键:选中a=file.read()行,然后按:ctrl+alt+t)

file=open(r"C:\code\trading_system_autotest\config\environment.yaml","r",encoding="gbk")
try:
    a=file.read()
    print(a)
except Exception as e:
    print(a)
finally:
    file.close()

🌺with open()

with open()语法

with open()用法和open()用法一致,但比open()更有优势,open()需要配合close()配合使用,with open即便在文件读写过程中发生IO异常,也会自动调用.close()方法,关闭文件

with open(r"C:\code\trading_system_autotest\config\environment.yaml","r",encoding="GBK") as env_file:
    a=env_file.read()
print(a)print(a)

2、读取项目中的yaml文件

with open(r"C:\code\trading_system_autotest\config\environment.yaml","r",encoding="GBK") as env_file:
    self.env=yaml.load(env_file,Loader=yaml.FullLoader)

1、load()读取出来的内容,不会改变数据的格式,原来是什么格式,读取出来就是什么格式(read()读取出来的格式是字符串)

2、需要加Loader=yaml.FullLoader,不然会报错

3、yaml.load(f.read(), Loader=yaml.FullLoader)也可以写成yaml.load(f, Loader=yaml.FullLoader),读取出来的结果相同。

4、读取出来的数据是Python的字典格式,后续可以通过字典的访问方式来提取指定的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值