Python_16 配置文件与封装

这篇具有很好参考价值的文章主要介绍了Python_16 配置文件与封装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、查缺补漏
1. ctrl + alt +L 规范格式
2. Python 使用 ini&yaml 配置文件
 http://testingpai.com/article/1621245437855
3. 如何进行SDK的测试
 https://www.cnblogs.com/winson-317/p/9896645.html
4. Shift+alt+E 执行选中的代码
二、配置文件分类 三种配置文件效率一致,py最方便
1. 硬编码与软编码
 a. 软编码:参数化整个项目配置,通过参数实现比如设置name为参数,调用时赋值
 b. 硬编码:写死的编码方式,比如说里name=alisa就是硬编码,要修改alisa要改代码
2. xxx.ini:django项目部署用uwsgi,配置文件为ini文件,有时java开发也会用到
3. xxx.yaml:java用的多,dockercompose会用到,docker和k8s都用到
4. xxx.py:python文件,django项目多是py文件 如:settings.py
5. 使用场景:生产环境和测试环境的区别:ip不一样、数据库地址不一样、密码不一样、账号不一样
将配置文件中的ip等数据更改就可以切换生产环境和测试环境~
三、xxx.ini 文件
1. 写法:在项目下点击New->File->创建一个后缀为.ini的文件
 [section] -- 可以自己定义
 key1=val1
 key2=val2
 key3=val3
 相似于
 test_dict={"key1":"val1","key2":"val2","key3":"val3"}
 print(test_dict["key1"])
 test_conf={"testpy1":{"key1":"val1","key2":"val2","key3":"val3"},
 "testpy2":{"key1":"val1","key2":"val2","key3":"val3"}}
2. 特点:
  a. section不能重复
  b. 同一个section中的key不能重复
  c. 等号两边不能有空格
  d. 获取值默认是字符串类型
  e. 添加、删除、修改只是对缓存区域的改变,不会真实修改文件
3. 常用方法:
  a. 获取所有的sections 两种方式
   赋值对象1= conf.sections() 不需要list强制类型转换
   赋值对象2 = conf.keys() 结果会多一个'DEFAULT' 需要list强制类型转换
  b. 获取指定sections下所有的options(key)
   test_options = conf.options(section='想要查询的section部分') 获取key
   test_options=conf.items(section='想要查询的section部分') 获取key(options),value
  c. 直接获取key(options)的value
    i. 默认获取到的是str【常用】
     value = conf.get(section='想要查询的section部分', option='想查询val的key值')
    ii. 获取布尔值
     value2=conf.getboolean(section='想要查询的section部分', option='想查询val为True/False的key值')
    iii. 获取数值(int类型),不能使用小数,只能写整数
     value3 = conf.getint(section='想要查询的section部分', option='想查询val为int类型的key值')
    iv. 获取数值(float类型)
     value4 = conf.getfloat(section='想要查询的section部分', option='想查询val为float类型的key值')

Python_16 配置文件与封装

4. 其他操作
  a. 添加 sections(操作在内存中,不会保存到文件里) conf.add_section('your_section')
  b. 添加 key,val(操作在内存中,不会保存到文件里) conf.set('your_section','key22','val22')
  c. 删除(操作在内存中,不会保存到文件里) conf.remove_option('your_section', "key1") 对写入的文档有效

          Python_16 配置文件与封装

          Python_16 配置文件与封装

  d. 写入文件:将你内存你的数据全部写入文件进行覆盖,conf 初始化的时候读取的是所有对象
   conf.write(fp=open(file=文件路径,mode='w'))

Python_16 配置文件与封装

Python_16 配置文件与封装

四、xxx.yaml 文件
1. 新建yaml文件 :在项目下点击New->File->创建一个后缀为.yaml的文件
2. 写法:如果是写字典类型就只能是字典类型,如果写列表类型就只能是列表类型
 key1: val1
 key2:
  - test01 ---列表
  - test02
  - test03
3. 数据类型只支持一种,写多种只能嵌套在val里类似于-> {key1:val1,key2:[test01, test02, test03]}
4. 特点:
  a. 使用缩进来表示层级关系
  b. key值要和val值保持一个空格,杠和列表中间也要一个空格
  c. 大小写敏感
  d. 同一个层级的要对齐
  e. 只能用空格,不要用tab
  f. 一个yaml对外只支持一种数据类型
  g. yanl文件是一次性读取,不支持连续读取
  h. 读取出来就是python对象,可以直接取值使用
5. 常用方法:
  a. open(file=file_path,encoding="utf-8") 打开文件 路径可以拼接为绝对路径,但使用相对路径也可以
  b. value = yaml.load(stream=file,Loader=yaml.FullLoader) 固定搭配,读取全部文件内容

        Python_16 配置文件与封装

   另一种方法是open打开但是需要手动关闭

       Python_16 配置文件与封装

6. 安装yaml pip install pyyaml

Python_16 配置文件与封装

五、封装
1. ini的封装

Python_16 配置文件与封装

2. yaml的封装
a. 用函数封装

Python_16 配置文件与封装

b. 用类封装

Python_16 配置文件与封装

六、一些重要的点
1. 老师的博客里面有很多知识,去看看
2. 项目中使用的常量,我们把它收集在一个文件中,这个就是配置文件,配置文件在项目中是非常有必要的,它避免了项目中文件对常量的分散使用,让常量可以一致修改,避免造成修改不全面的问题
3. 使用open 打开文件需要手动关闭,使用with open的时候自动关闭所以不需要手动close

 文章来源地址https://www.toymoban.com/news/detail-432792.html

到了这里,关于Python_16 配置文件与封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS查缺补漏之《如何优雅解决margin垂直方向塌陷与合并问题?》

    一:父子元素之间margin垂直方向塌陷问题 在处理margin垂直方向问题时,经常会遇到在给子元素设置margin时,导致效果出现在了父元素上;如下代码所示: 代码原义是想实现三方面: ① 将box1的margin-top调为50px,使其与父元素之间形成空隙; ② 将box2的margin-top调为20px,使其与

    2024年02月10日
    浏览(51)
  • CSS查缺补漏之常用长度单位(px、em、rem、%、vw/vh、vmin/vmax)

    此文内容较少,轻轻松松掌握,莫要有压力~ 正如现实生活中长度具有mm、dm、cm、m等,在css中,也具备多种长度单位,本文对常用的几种单位进行详细举例介绍~ px:像素单位 初学css时,px单位经常被使用,此处按下不表~  em:表示相对于 当前元素 或 父元素 的font-size的倍数

    2024年02月09日
    浏览(49)
  • allegro16.6系统gerber文件输出规范详解

    一、设计检查 在 gerber 文件输出之前必须要进行最后检查! 检查项目: 1: update DRC,确保没有断短路 2:检查 Summary drawing report,确保 5 个“0” 3:检查 Dangling line and via report ,确保没有冗余孔和线 4:进行丝印、 loop、 90 度、 solder2line 等自动工具检查   二、钻孔文件输出

    2024年02月06日
    浏览(46)
  • 探索 Python 代码规范:编码风格与格式化指南详解

    在编写 Python 代码时,遵循一套明确的编程规范至关重要,这不仅可以提高代码的可读性和可维护性,还能帮助团队中的每个成员理解彼此的工作。本文将详细介绍 Python 编程中的几个关键规范,包括代码格式、命名约定和最佳实践。 PEP 8 是 Python 社区广泛接受的风格指南,它

    2024年04月25日
    浏览(61)
  • vite初始化vue3项目(配置自动格式化工具与git提交规范工具)

    初始化项目 vite构建vue项目还是比较简单的,简单配置选择一下就行了 初始化命令 初始化最新版本vue项目 2. 基本选项含义 Add TypeScript 是否添加TS ADD JSX是否支持JSX ADD Vue Router是否添加Vue Router路由管理工具 ADD Pinia 是否添加pinia(状态管理工具) Add ESLinit 是否添加ESLint是否添加

    2024年02月12日
    浏览(62)
  • 【音视频 | wav】wav音频文件格式详解——包含RIFF规范、完整的各个块解析、PCM转wav代码

    😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭 🤣本文内容🤣:🍭介绍wav音频格式🍭 😎金句分享😎:🍭子曰:父母在,不远游,游必有方。 ——《论语·里仁篇》。意思是,父母还健在时,就不要

    2024年02月06日
    浏览(60)
  • Java【代码 16】将word、excel文件转换为pdf格式和将pdf文档转换为image格式工具类分享(Gitee源码)aspose转换中文乱码问题处理

    感谢小伙伴儿的分享: ● 不羁 ● 郭中天 整合调整后的工具类Gitee地址:https://gitee.com/yuanzhengme/java_application_aspose_demo ● WordToPdfUtil用于将word文档转换为pdf格式的工具类 ● ExcelToPdfUtil用于将excel文档转换为pdf格式的工具类 ● PdfToImageUtil用于将pdf文档转换为image格式的工具类

    2024年01月24日
    浏览(86)
  • SpringBoot入门篇2 - 配置文件格式、多环境开发、配置文件分类

    目录 例: 修改服务器端口。(3种) src/main/resources/application.properties  src/main/resources/application.yml (主要用这种)   src/main/resources/application.yaml SpringBoot配置文件加载优先级 :/application.properties application.yml  application.yaml yaml,一种数据序列化格式。 优点:容易阅读、以数据为

    2024年02月11日
    浏览(49)
  • python - 安装pyqt5模块,PyCharm配置QtDesigner/Pyuic/Pyrcc,ui转py文件,图片转ico/icns格式,pyinstaller/py2app打包代码

    window配置Python+PyQt5+QtDesigner+PyUic+PyRcc(最全安装教程):https://blog.csdn.net/baidu_35145586/article/details/108110236 MacOS配置Pycharm+Python+PyQt5+QtDesigner+PyUic+PyRcc: https://blog.csdn.net/lkhk2008/article/details/116019386 QtDesigner工具的使用(界面与业务逻辑分离实现):https://blog.csdn.net/weixin_62094306/art

    2024年02月03日
    浏览(49)
  • uniapp接口请求api封装,规范化调用

    封装规范和vue中的差不多,都是统一封装成一个request对象,然后在api.js里面调用。 先创建一个utils文件夹,然后里面创建一个request.js,代码如下: 在api文件夹中封装对应的index.js文件,然后导入request对象: 在对应的vue或者react中引入并调用:

    2024年02月08日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包