python配置文件写入过程详解

yipeiwu_com6年前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设计】。

相关文章

python 实现绘制整齐的表格

python 实现绘制整齐的表格

实现效果: 方法一: 1 print "+"+"-"*8+"+"+"-"*8+"+"+"-"*8+"+" 2 print "|"+" "*2+"姓名"+" "*2+"|"+" "...

Python进程间通信Queue实例解析

本文研究的主要是Python进程间通信Queue的相关实例,具体如下。 1.Queue使用方法: Queue.qsize():返回当前队列包含的消息数量; Queue.empt...

python 计算平均平方误差(MSE)的实例

我们要编程计算所选直线的平均平方误差(MSE), 即数据集中每个点到直线的Y方向距离的平方的平均数,表达式如下: MSE=1n∑i=1n(yi−mxi−b)2 最...

python 叠加等边三角形的绘制的实现

python 叠加等边三角形的绘制的实现

python语言程序设计基础 习题2.5 import turtle def drawTriangle(num,len,flag):#flag用来调整画三角形的方向 flag...

python2.7实现复制大量文件及文件夹资料

需求:拷大量数据,发现有2000G,靠系统的复制功能怕是得好几个小时,于是回来学一手操作,话不多说上代码: 说明:CopyFiles1是可以将sourceDir连子目录一起原样复制到ta...