解析:
问:什么是用户配置文件?
答:用户配置文件就是在用户登录时定义系统加载所需环境的设置和文件的 *** 。它包括所有用户专用的配置设置,如程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置及窗口的大小和位置。
当你第一次登录到一台基于Micr--s--ft Wind--ws XP、Wind--ws 2000或Wind--ws NT? W--rkstati--n的计算机上时,系统就会为你创建一个专用的配置文件。
问:配置文件都有什么不同的区别?
答:有三种主要的配置文件类型:
·本地用户配置文件。在用户第一次登录到计算机上时被创建,这个本地用户配置文件被储存在计算机的本地硬盘驱动器上。任何对本地用户配置文件所作的更改都只对发生改变的计算机产生作用。
·漫游用户配置文件。一个本地配置文件的副本被复制及储存在网络上的一个服务器共享上。当用户每次登录到网络上的任一台计算机上时,这个文件都会被下载,并且当用户注销时,任何对漫游用户配置文件的更改都会与服务器的拷贝同步。漫游用户配置文件要求这台计算机是Wind--ws NT域或Active Direct--ry?的一个成员。
·强制用户配置文件。是一种特殊类型的配置文件,使用它管理员可为用户指定特殊的设置。只有系统管理员才能对强制用户配置文件作修改。当用户从系统注销时,用户对桌面做出的修改就会丢失。
第四种类型的配置文件是一个临时的配置文件,只有在因一个错误而导致用户配置文件不能被加载时才会出现。临时配置文件允许用户登录并改正任何可能导致配置文件加载失败的配置。临时配置文件在每次会话结束后都将被删除--注销时对桌面设置和文件所作的更改都会丢失。
常用的配置文件后缀是.ini、.conf、.py,当然还有使用.json、.txt的,推荐使用常用的.ini、.py,配置文件的名字一般是config便于理解和使用。
ini配置文件,这类配置文件我们使用内置configparser库来使用,它可以实现配置文件的写入、更新、删除、读取等 *** 作非常方便,建议使用这种方式。
新建一个config.ini的配置文件内容如下,编码格式要是 utf-8 以免出错。:
其中[]中的是section节点,该节点下的等式是option即键=值
然后每一行写一个option ,每个选项就是一个option。直接写名字,后面加 " = " 再加上它的值就行,字符串的表示不要加引号,否则引号也会被解析出来。
可以在配置文件中加入注释 ,但是注释必须是单独的一行,且以 “#” 开头。只是每次运行时不会读入注释,只要运行一次,写入文件后,所有的注释都会消失。
config.json文件
使用python内置的 json 标准库进行解析ini文件。
load() 从json文件中读取json格式数据
loads() 将字符串类型数据转化为json格式数据
dump() 将json格式数据保存到文件
dumps() 将json格式数据保存为字符串类型
TOML的语法广泛地由key = "value"、[节名]、#注释构成。
支持以下数据类型:字符串、整形、浮点型、布尔型、日期时间、数组和图表。
config.toml文件
使用外部库 toml 解析toml文件。
安装:pip install toml
读取文件
安装:
YAML是目前最推荐的配置文件格式。优秀的配置文件标准它几乎都有:
容易阅读和修改,支持注释。
支持丰富的数据类型。
不同格式的明确表达。
yaml使用时需要注意:
yaml强制缩进。虽然不规定具体缩进几个空格,但是同一级的内容要保持相同的缩进。
冒号后面一定要加空格, 否则无法解析。
python解析 yaml 可以使用pyyaml库, *** 作和标准的文件 *** 作非常类似:
得到的data就是解析后的数据,在python当中,它是一个嵌套的字典:
想获取某一项配置,再通过字典的 *** 作获取:
config.yaml文件
读取
要理解什么是软件配置管理,就要先理解什么是配置文件。什么是配置文件?
配置文件是用来存储相关软件的一些信息,如初始化的信息,初始路径和帐号等等,方便程序的移植。
配置文件类型:
按照配置文件的形态分为以下几类:
1. 硬编码型
用开发语言来说就是hard code,即:将软件中配置的数据直接写死在代码中,例如:路径,IP,等待时间等。这种方式不利于数据的修改,但是另一方面来说如果某些数据比较重要且固定,用硬编码的方式可以保护这类的数据不被修改。
2. 文件类型
也就是目前单体应用架构中常用的方式,将源代码与配置文件分开管理,程序在启动时读取指定目录下的文件内容来加载配置信息。这种方式十分有利于制品的晋升,即程序在不同环境中运行时,无须修改代码,只需变更配置文件即可,例如在测试环境需要连接192.168.1.1:3306数据库,而在生产环境运行时,需要连接192.168.1.2:3306数据库,这时只需要变更配置文件即可。
3. 数据库类型
我们一般会将非文本形式的配置的信息存放在数据库中,这种配置一般为功能和业务上的配置,可以动态变更,例如功能开关(新功能上线后,先隐藏起来,等待可以发布时,修改数据库中的数据,即可将功能页面开放出来)。
4. 远程调用型
即所有的配置集中管理起来,所有服务启动或运行时通过接口加载配置,也就是我们所熟知的配置中心的方式。
按照加载类型可分为:
1. 单次加载类型
程序启动时读取的初始化配置,一般不会变化,例如连接数据库的凭据信息等。
2. 动态加载类型
程序运行时,根据业务需求变更的配置信息,例如功能开关,日志级别等。
为什么要应用(软件)配置管理?
随着数字化转型的发展,线下业务逐渐线上化,应用数量与日俱增,应用架构也趋于多样化和复杂化,这对于应用的配置也提出了越来越高的要求。
最初配置信息硬编码在代码中,与代码一起放在源代码仓库中;为了安全性与管理的方便,将配置以文件的形式从代码中分离出来管理,有的方式是将配置文件分发到目标机器的目录上,程序启动时直接读取。有的方式是CI打包时,在不同环境晋升时将配置文件打入程序包内,程序解压运行时从相对目录读取配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)