python配置文件写入过程详解
python配置文件有.conf,.ini,.txt等多种
python集成的 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件
我的配置文件如下
[MOTOR] comnum = 3 baud = 19200 m1slowstep = 10 m1faststep = 100 m1origin = 5 m2slowstep = 10 m2faststep = 50 m2origin = 5 [CoarseAdjust] standardx = 0.000000 standardy = 0.000000 xperangle = 500 yperangle = 160 xmotor = 1 xmotororien = -1 ymotor = 2 ymotororien = 1 triggermode = 1 triggertimeout = 1 autoadjust = 1 [FineAdjust] countdown = 10 datfilepath = E:\Mcs05\DatTemp\ xfinestep = 10 yfinestep = 10 mcsfilepath = E:\Mcs05\WHTest\ filetype = Mcs nastartaltitude = 80 naendaltitude = 111 rayleighstartaltitude = 20 rayleighendaltitude = 60 fineadjustfilepath = E:\Mcs05\ methodselect = 01 [EASYMCS] chname = WHTest prefixion = R mcstheshold = 1.4 numofbins = 2048 binwidth = 640 numofpluse = 30 mcs32path = D:\software\MCS32\ mcs32filepath = E:\Mcs05\ [GYRO] comno = 15 baud = 9600
当我进行读写操作时,发现
# 读取配置文件 import ConfigParser config = ConfigParser.ConfigParser() config.readfp(open('GloVar.ini')) a = config.get("CoarseAdjust","MD5") print a # 写入配置文件 import ConfigParser config = ConfigParser.ConfigParser() # set a number of parameters config.add_section("CoarseAdjust") config.set("CoarseAdjust", "xperangle", "1000") config.set("CoarseAdjust", "yperangle", "500")
发现配置文件中的内容并没有发生改变,为什么?
上面的这种修改方式只是修改了python中内存的值,并没有对配置文件的内容进行修改,并真实地写入
真正地修改方式应该是
"""修改并保存在配置文件中""" # coding:utf-8 import configparser # 创建管理对象 conf = configparser.ConfigParser() conf.read('GloVar.ini', encoding='utf-8') print(conf.sections()) # 往section添加key和value conf.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 模块需要注意的是
- 不能区分大小写。
- 重新写入的配置文件不能保留原有配置文件的注释。
- 重新写入的配置文件不能保持原有的顺序。
- 不支持嵌套。
- 不支持格式校验
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。