python配置文件写入过程详解

时间:2021-05-22

python配置文件有.conf,.ini,.txt等多种

python集成的 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件

我的配置文件如下

[MOTOR]comnum = 3baud = 19200m1slowstep = 10m1faststep = 100m1origin = 5m2slowstep = 10m2faststep = 50m2origin = 5[CoarseAdjust]standardx = 0.000000standardy = 0.000000xperangle = 500yperangle = 160xmotor = 1xmotororien = -1ymotor = 2ymotororien = 1triggermode = 1triggertimeout = 1autoadjust = 1[FineAdjust]countdown = 10datfilepath = E:\Mcs05\DatTemp\xfinestep = 10yfinestep = 10mcsfilepath = E:\Mcs05\WHTest\filetype = Mcsnastartaltitude = 80naendaltitude = 111rayleighstartaltitude = 20rayleighendaltitude = 60fineadjustfilepath = E:\Mcs05\methodselect = 01[EASYMCS]chname = WHTestprefixion = Rmcstheshold = 1.4numofbins = 2048binwidth = 640numofpluse = 30mcs32path = D:\software\MCS32\mcs32filepath = E:\Mcs05\[GYRO]comno = 15baud = 9600

当我进行读写操作时,发现

# 读取配置文件import ConfigParserconfig = ConfigParser.ConfigParser()config.readfp(open('GloVar.ini'))a = config.get("CoarseAdjust","MD5")print a# 写入配置文件import ConfigParserconfig = ConfigParser.ConfigParser()# set a number of parametersconfig.add_section("CoarseAdjust")config.set("CoarseAdjust", "xperangle", "1000")config.set("CoarseAdjust", "yperangle", "500")

发现配置文件中的内容并没有发生改变,为什么?

上面的这种修改方式只是修改了python中内存的值,并没有对配置文件的内容进行修改,并真实地写入

真正地修改方式应该是

"""修改并保存在配置文件中"""# coding:utf-8import configparser# 创建管理对象conf = configparser.ConfigParser()conf.read('GloVar.ini', encoding='utf-8')print(conf.sections())# 往section添加key和valueconf.set("CoarseAdjust", "xPerAngle", "{}".format(500))conf.set("CoarseAdjust", "yPerAngle", "160")items = conf.items('CoarseAdjust')print(items) # list里面对象是元祖conf.write(open('GloVar.ini', "r+", encoding="utf-8")) # r+模式

ConfigParser 模块需要注意的是

  • 不能区分大小写。
  • 重新写入的配置文件不能保留原有配置文件的注释。
  • 重新写入的配置文件不能保持原有的顺序。
  • 不支持嵌套。
  • 不支持格式校验

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章