python写配置文件|python 如何实现配置文件中的配置项加密

① 如何创建.ini配置文件

1、说明:python3使用configparser模块来处理ini配置文件。2、代码示例:需要生成conf.ini配置文件如下:[config]v1 = 100v2 = abcv3 = truev4 = 123.45python代码:import configparser# 加载现有配置文件conf = configparser.ConfigParser()# 写入配置文件conf.add_section('config') #添加section# 添加值conf.set('config', 'v1', '100')conf.set('config', 'v2', 'abc')conf.set('config', 'v3', 'true')conf.set('config', 'v4', '123.45')# 写入文件with open('conf.ini', 'w') as fw: conf.write(fw)# 读取配置信息v1 = conf.getint('config', 'v1')v2 = conf.get('config', 'v2')v3 = conf.getboolean('config', 'v3')v4 = conf.getfloat('config', 'v4')print('v1:', v1)print('v2:', v2)print('v3:', v3)print('v4:', v4)打开conf.ini文件检查内容3、模块常用函数:1)读取配置文件read(filename) 直接读取ini文件内容sections() 得到所有的section,并以列表的形式返回options(section) 得到该section的所有optionitems(section) 得到该section的所有键值对get(section,option) 得到section中option的值,返回为string类型getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。2)写入配置文件add_section(section) 添加一个新的sectionset( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。

② 如何使用python程序向ini配置文件中写入中文

和普通的读写文件一样的,首先得要有权限,然后重要的是文件编码格式要选对且要统一,不然就乱码了

③ 如何使用Python3读写INI配置文件

Python读取ini配置需要用到ConfigParser包,所以要先加载它。importconfigparser之后我们需要载入配置文件。config=configparser.ConfigParser()#IpConfig.ini可以是一个不存在的文件,意味着准备新建配置文件。config.read("IpConfig.ini")

④ python 如何实现配置文件中的配置项加密

可以在写入配置文件的时候,进行加密,读取配置后解密即可比如使用base64加密:base64.b64encode加密,base64.b64decode解密

⑤ python configparser怎么写default

以这个非常简单的典型配置文件为例:

[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX11 = yes[bitbucket.org]User = hg[topsecret.server.com]Port = 50022ForwardX11 = no123456789101112

1、config parser 操作跟dict 类似,在数据存取方法基本一致

>> import configparser>>> config = configparser.ConfigParser()>>> config.sections()[]>>> config.read('example.ini')['example.ini']>>> config.sections()['bitbucket.org', 'topsecret.server.com']>>> 'bitbucket.org' in configTrue>>> 'bytebong.com' in configFalse>>> config['bitbucket.org']['User']'hg'>>> config['DEFAULT']['Compression']'yes'>>> topsecret = config['topsecret.server.com']>>> topsecret['ForwardX11']'no'>>> topsecret['Port']'50022'>>> for key in config['bitbucket.org']: print(key)…usercompressionlevelserveraliveintervalcompressionforwardx11>>> config['bitbucket.org']['ForwardX11']'yes'

2、默认配置项[DEFAULT]section 的默认参数会作用于其他Sections

3、数据类型config parsers 不会猜测或自动分析识别config.ini参数的数据类型,都会按照字符串类型存储,如果需要读取为其他数据类型,需要自定义转换。特殊bool值:对于常见的布尔值’yes’/’no’, ‘on’/’off’, ‘true’/’false’ 和 ‘1’/’0’,提供了getboolean()方法。

4、获取参数值方法 get()使用get()方法获取每一参数项的配置值。如果一般Sections 中参数在[DEFAULT]中也有设置,则get()到位[DEFAULT]中的参数值。

5、参数分隔符可以使用‘=’或‘:’(默认)

6、可以使用‘#’或‘;’(默认)添加备注或说明

[Simple Values]key=valuespaces in keys=allowedspaces in values=allowed as wellspaces around the delimiter = obviouslyyou can also use : to delimit keys from values[All Values Are Strings]values like this: 1000000or this: 3.14159265359are they treated as numbers? : nointegers, floats and booleans are held as: stringscan use the API to get converted values directly: true[Multiline Values]chorus: I'm a lumberjack, and I'm okay I sleep all night and I work all day[No Values]key_without_valueempty string value here =[You can use comments]# like this; or this# By default only in an empty line.# Inline comments can be harmful because they prevent users# from using the delimiting characters as parts of values.# That being said, this can be customized. [Sections Can Be Indented] can_values_be_as_well = True does_that_mean_anything_special = False purpose = formatting for readability multiline_values = are handled just fine as long as they are indented deeper than the first line of a value # Did I mention we can indent comments, too?3132333435363738394041

7、写配置

常见做法:

config.write(open('example.ini', 'w'))1

合理做法:

with open('example.ini', 'w') as configfile: config.write(configfile)12

注意要点:

ConfigParser 在get 时会自动过滤掉‘#’或‘;’注释的行(内容);一般情况下我们手工会把配置中的暂时不需要的用‘#’注释,问题在于,Configparser 在wirte的时候同file object行为一致,如果将注释’#’的配置经过get后,再wirte到conf,那么’#’的配置就会丢失。那么就需要一个策略或规则,配置需不需要手工编辑 ?还是建立复杂的对原生文本的处理的东西,我建议是管住手,避免将一些重要的配置爆露给用户编辑,切记行内注释和Section内注释。有一个相对简单的方法是:对单独在一行的代码,你可以在读入前把”#”, “;”换成其他字符如’@’,或‘^’(在其bat等其他语言中用的注释符易于理解),使用allow_no_value选项,这样注释会被当成配置保存下来,处理后你再把“#”, “;”换回来。

在ConfigParser write之后,配置文本如果有大写字母’PRODUCT’会变为小写字母’proct’,并不影响配置的正确读写。

⑥ 如何用python来修改配置文件conf

楼上的俩人回答综合一下就是完美的答案,文件打开方式file.open。但是这种方式比较low,但是如果就是一简单的读写文件用着方便,configparser是专门的conf库,有一点点(只是一点点)学习成本,但是也很方便。推荐后者。

⑦ python中要怎么实现当程序要被关闭时触发一个事件例如写一个配置文件

开一个线程来处理写配置文件,当截获到关闭的消息时启动即可。

⑧ 如何使用Python3读取配置文件

ini是微软Windows操作系统中的文件扩展名(也常用在其他系统)。

INI是英文“初始化(Initial)”的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。通过它,可以将经常需要改变的参数保存起来(而且还可读),使程序更加的灵活。

先给出一个ini文件的示例。

[School]ip=10.15.40.123mask=255.255.255.0gateway=10.15.40.1dns=211.82.96.1[Match]ip=172.17.29.120mask=255.255.255.0gateway=172.17.29.1dns=0.0.0.0

这个配置文件中保存的是不同场合下的IP设置参数。

首先,Python读取ini配置需要用到ConfigParser包,所以要先加载它。

importconfigparser

之后我们需要载入配置文件。

config=configparser.ConfigParser()

#IpConfig.ini可以是一个不存在的文件,意味着准备新建配置文件。

config.read("IpConfig.ini")

接下来,我们可以使用configparser.add_section()向配置文件中添加一个Section。

#添加节School

config.add_section("School")

注意:如果文件中已经存在相应的项目,则不能再增加同名的节。

然后可以使用configparser.set()在节School中增加新的参数。

#添加新的IP地址参数

config.set("School","IP","192.168.1.120")config.set("School","Mask","255.255.255.0")config.set("School","Gateway","192.168.1.1")config.set("School","DNS","211.82.96.1")

你可以以同样的方式增加其它几项。

#由于ini文件中可能有同名项,所以做了异常处理

try:config.add_section("Match")config.set("Match","IP","172.17.29.120")config.set("Match","Mask","255.255.255.0")config.set("Match","Gateway","172.17.29.1")config.set("Match","DNS","0.0.0.0")exceptconfigparser.DuplicateSectionError:print("Section'Match'alreadyexists")

增加完所有需要的项目后,要记得使用configparser.write()进行写入操作。

config.write(open("IpConfig.ini","w"))

以上就是写入配置文件的过程。

接下来我们使用configparser.get()读取刚才写入配置文件中的参数。读取之前要记得读取ini文件。

ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+"
"+gateway,dns)

下面是一个完整的示例程序,它将生成一个IpConfig.ini的配置文件,再读取文件中的数据,输出到屏幕上。

#-*-coding:utf-8-*-importconfigparser#读取配置文件config=configparser.ConfigParser()config.read("IpConfig.ini")#写入宿舍配置文件try:config.add_section("School")config.set("School","IP","10.15.40.123")config.set("School","Mask","255.255.255.0")config.set("School","Gateway","10.15.40.1")config.set("School","DNS","211.82.96.1")exceptconfigparser.DuplicateSectionError:print("Section'School'alreadyexists")#写入比赛配置文件try:config.add_section("Match")config.set("Match","IP","172.17.29.120")config.set("Match","Mask","255.255.255.0")config.set("Match","Gateway","172.17.29.1")config.set("Match","DNS","0.0.0.0")exceptconfigparser.DuplicateSectionError:print("Section'Match'alreadyexists")#写入配置文件config.write(open("IpConfig.ini","w"))ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+"
"+gateway,dns))

⑨ python3 如何创建一个.ini的配置文件。

1、说明:python3使用configparser模块来处理ini配置文件。2、代码示例:需要生成conf.ini配置文件如下:[config]v1 = 100v2 = abcv3 = truev4 = 123.45python代码:import configparser# 加载现有配置文件conf = configparser.ConfigParser()# 写入配置文件conf.add_section('config') #添加section# 添加值conf.set('config', 'v1', '100')conf.set('config', 'v2', 'abc')conf.set('config', 'v3', 'true')conf.set('config', 'v4', '123.45')# 写入文件with open('conf.ini', 'w') as fw: conf.write(fw)# 读取配置信息v1 = conf.getint('config', 'v1')v2 = conf.get('config', 'v2')v3 = conf.getboolean('config', 'v3')v4 = conf.getfloat('config', 'v4')print('v1:', v1)print('v2:', v2)print('v3:', v3)print('v4:', v4)打开conf.ini文件检查内容

3、模块常用函数:1)读取配置文件read(filename) 直接读取ini文件内容sections() 得到所有的section,并以列表的形式返回options(section) 得到该section的所有optionitems(section) 得到该section的所有键值对get(section,option) 得到section中option的值,返回为string类型getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。2)写入配置文件add_section(section) 添加一个新的sectionset( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。

⑩ 怎么在python中创建配置文件

读取config中info段中的name变量值.最后讲讲如何设置值.使用set(段名,变量名,值)来设置变量.config.set(''info'',''age'',''21'')表示把info段中age变量设置为21.就这么简单.


赞 (0)