python对配置文件.ini进行增删改查操作的方法示例


Posted in Python onJuly 28, 2017

前言

本文主要给大家介绍的是关于python对配置文件.ini增删改查操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

一、先导入configobj库文件

可以用pip直接安装

#!/usr/bin/python
# -*- coding: utf-8 -*-

import json

from configobj import ConfigObj

二、增添section

这里是前后端分离的例子,从前端接收json数据,然后写入配置文件中

def add(self, false=None):
 self.log.debug("list")
 try:
  conf_ini = CONFIG_INI_PATH+"users.ini.bak"
  config = ConfigObj(conf_ini, encoding='UTF8')
  req = self.input["input"]
  data = req["data"]
  userName = data["userName"]
  disc = data["disc"]
  ip = data["ip"]
  expMonth = int(float(data["expDate"]) * 12)
  for user in config.items():
   if userName == user[0]:
    self.out = '{"status": 1,"msg":"用户名已存在!"}'
    return false
   else:
    pass
  config[userName] = {}
  config[userName]['user'] = userName
  config[userName]['disc'] = disc
  config[userName]['ip'] = ip
  config[userName]['validity_date'] = data["expDate"]
  config[userName]['cert_expired'] = get_today_month(expMonth)
  config[userName]['enable'] = 0
  config[userName]['path'] = USER_KEY_PATH + userName
  config.write()
  self.out = '{"status": 0,"msg":"操作成功!"}'
 except Exception, e:
  self.out = '{"status":1, "msg":"'+str(e)+'"}'

三、修改section

def modify(self):
 self.log.debug("modify")
 try:
  conf_ini = CONFIG_INI_PATH + "users.ini.bak"
  config = ConfigObj(conf_ini, encoding='UTF8')
  req = self.input["input"]
  data = req["data"]
  userName = data["userName"]
  disc = data["disc"]
  ip = data["ip"]
  config[userName]['disc'] = disc
  config[userName]['ip'] = ip
  config.write()
  self.out = '{"status": 0,"msg":"操作成功!"}'
 except Exception, e:
  self.out = '{"status":1, "msg":"'+str(e)+'"}'

四、删除section

通过section名找到相应section进行del操作

def delete(self, false=None):
 self.log.debug("delete")
 try:
  conf_ini = CONFIG_INI_PATH + "users.ini.bak"
  config = ConfigObj(conf_ini, encoding='UTF8')
  req = self.input["input"]
  data = req["data"]
  userName = data["userName"]
  for user in config.items():
   if userName == user[0]:
    del config[userName]
    config.write()
    self.out = '{"status": 0,"msg":"操作成功!"}'
    return false
   else:
    pass
  self.out = '{"status": 1,"msg":"用户不存在!"}'
 except Exception, e:
  self.out = '{"status":1, "msg":"config err!"}'

五、查询section

这里借用python字典将配置文件里的内容整体输出,代码里还有查询和分页的功能

def list(self):
 self.log.debug("list")
 try:
  req = self.input["input"]
  data = req["data"]
  pageSize = req["pageSize"]
  pageIndex = req["pageIndex"]
  userName = data["userName"]
  conf_ini = CONFIG_INI_PATH + "users.ini.bak"
  config = ConfigObj(conf_ini, encoding='UTF8')
  users = []
  n = 0
  if userName == '':
   for user in config.items():
    n = n + 1
    if pageSize * pageIndex + 1 <= n <= pageSize * (pageIndex + 1):
     users.append(user[1])
    else:
     pass
  else:
   for user in config.items():
    if userName == user[0]:
     n = n + 1
     if pageSize * pageIndex + 1 <= n <= pageSize * (pageIndex + 1):
      users.append(user[1])
     else:
      pass
    else:
     pass

  utext = json.dumps(users)
  self.out = '{"status": 0,"total":'+str(n)+',"data":' + utext + '}'
 except Exception, e:
  self.out = '{"status":1, "msg":"' + str(e) + '"}'
 self.log.debug("list in.")

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Python 相关文章推荐
python中文乱码的解决方法
Nov 04 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
初步认识Python中的列表与位运算符
Oct 12 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
Python统计单词出现的次数
Apr 04 Python
Python变量访问权限控制详解
Jun 29 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
python如何保证输入键入数字的方法
Aug 23 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
Pygame的程序开始示例代码
May 07 Python
利用Python实现Picgo图床工具
Nov 23 Python
Python3中使用PyMongo的方法详解
Jul 28 #Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 #Python
Python单体模式的几种常见实现方法详解
Jul 28 #Python
深入浅出分析Python装饰器用法
Jul 28 #Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 #Python
Python使用sorted排序的方法小结
Jul 28 #Python
python发送邮件实例分享
Jul 28 #Python
You might like
ajax在joomla中的原生态应用代码
2012/07/19 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
DropDownList实现可输入可选择(两种版本可选)
2016/12/07 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
python模块restful使用方法实例
2013/12/10 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Django中的用户身份验证示例详解
2019/08/07 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
给物业的表扬信
2014/01/21 职场文书
小学家长会邀请函
2014/01/23 职场文书
药剂专业求职信
2014/06/20 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis