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 (1)
Oct 31 Python
使用Python进行稳定可靠的文件操作详解
Dec 31 Python
打包发布Python模块的方法详解
Sep 18 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
python向图片里添加文字
Nov 26 Python
python颜色随机生成器的实例代码
Jan 10 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
Autopep8的使用(python自动编排工具)
Mar 02 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
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
js定时器的使用(实例讲解)
2014/01/06 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
React中jquery引用的实现方法
2017/09/12 jQuery
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
班级安全教育实施方案
2014/02/23 职场文书
代理人委托书
2014/08/01 职场文书
校长个人总结
2015/03/03 职场文书
2015个人半年总结范文
2015/03/09 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
JavaScript原型链详解
2021/11/07 Javascript
关于MySQL中的 like操作符详情
2021/11/17 MySQL