python写ini文件不能保持原有顺序问题,Python读写ini文件的方法

onfigparser和ConfigParser在python中用来读取ini类型的配置文件的,提供很多方便的API来使用。

configparser: 在python3中的包名

ConfigParser:在python2中的包名

#-*-encoding=utf-8-*-

# 测试ConfigParser

import os

import ConfigParser

# 初始化

conf = ConfigParser.ConfigParser()

# 配置文件的绝对路径

conf_path = os.path.dirname(os.path.realpath(__file__)) + "/config.ini"

print(conf_path)

# 读取配置文件

conf.read(conf_path)

"""

读取配置信息

"""

# 查看配置中的所有section

sections = conf.sections()

# print sections

# 返回所有section和序列

sub_conf = conf.options("DOCKER")

print sub_conf

# 返回section中option的值

value_sub_conf = conf.get("DOCKER", "sit")

print value_sub_conf

1、config=ConfigParser.ConfigParser()

创建ConfigParser实例

2、config.sections()

返回配置文件中节序列

3、config.options(section)

返回某个项目中的所有键的序列

4、config.get(section,option)

返回section节中,option的键值

5、config.add_section(str)

添加一个配置文件节点(str)

6、config.set(section,option,val)

设置section节点中,键名为option的值(val)

7、config.read(filename)

读取配置文件

8、config.write(obj_file)

写入配置文件

综合实例

#coding=utf-8

import ConfigParser

def writeConfig(filename):

config = ConfigParser.ConfigParser()

# set db

section_name = 'db'

config.add_section( section_name )

config.set( section_name, 'dbname', 'MySQL')

config.set( section_name, 'host', '127.0.0.1')

config.set( section_name, 'port', '80')

config.set( section_name, 'password', '123456')

config.set( section_name, 'databasename', 'test')

# set app

section_name = 'app'

config.add_section( section_name )

config.set( section_name, 'loggerapp', '192.168.20.2')

config.set( section_name, 'reportapp', '192.168.20.3')

# write to file

config.write( open(filename, 'a') )

def updateConfig(filename, section, **keyv):

config = ConfigParser.ConfigParser()

config.read(filename)

print config.sections()

for section in config.sections():

print "[",section,"]"

items = config.items(section)

for item in items:

print "\t",item[0]," = ",item[1]

print config.has_option("dbname", "MySQL")

print config.set("db", "dbname", "11")

print "..............."

for key in keyv:

print "\t",key," = ", keyv[key]

config.write( open(filename, 'r+') )

if __name__ == '__main__':

file_name = 'test.ini'

writeConfig(file_name)

updateConfig(file_name, 'app', reportapp = '192.168.100.100')

print "end__"

Python读写ini文件的方法

本文实例讲述了Python读写ini文件的方法。分享给大家供大家参考。具体如下:

比如有一个文件update.ini,里面有这些内容:

1

2

3

4

5

6

7

8

[ZIP]

EngineVersion=0

DATVersion=5127

FileName=dat-5127.zip

FilePath=/pub/antivirus/datfiles/4.x/

FileSize=13481555

Checksum=6037,021E

MD5=aaeb519d3f276b810d46642d782d8921

那就可以通过下面这些代码得到MD5的值,简单吧

1

2

3

4

5

6

7

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import ConfigParser

config= ConfigParser.ConfigParser()

config.readfp(open('update.ini'))

a= config.get("ZIP","MD5")

print a

写也很简单:

1

2

3

4

5

6

7

8

9

10

import ConfigParser

config= ConfigParser.ConfigParser()

# set a number of parameters

config.add_section("book")

config.set("book","title","the python standard library")

config.set("book","author","fredrik lundh")

config.add_section("ematter")

config.set("ematter","pages",250)

# write to file

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

修改也不难(添加内容):

1

2

3

4

5

6

7

8

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import ConfigParser

config= ConfigParser.ConfigParser()

config.read('1.ini')

a= config.add_section("md5")

config.set("md5","value","1234")

config.write(open('1.ini',"r+"))#可以把r+改成其他方式,看看结果:)

修改内容:

1

2

3

4

5

6

7

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import ConfigParser

config= ConfigParser.ConfigParser()

config.read('1.ini')

config.set("md5","value","kingsoft")#这样md5就从1234变成kingsoft了

config.write(open('1.ini',"r+"))

删除部分可以看文档

remove_option( section, option)

Remove the specified option from the specified section. If the section does not exist, raise NoSectionError. If the option existed to be removed, return True; otherwise return False. New in version 1.6.

remove_section( section)

Remove the specified section from the configuration. If the section in fact existed, return True. Otherwise return False.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值