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实现用户登陆邮件通知的方法
Jul 09 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Python json 错误xx is not JSON serializable解决办法
Mar 15 Python
Python OpenCV实现图片上输出中文
Jan 22 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
python绘制无向图度分布曲线示例
Nov 22 Python
树莓派升级python的具体步骤
Jul 05 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 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
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
理解javascript对象继承
2016/04/17 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
2020/06/19 Javascript
python连接mysql调用存储过程示例
2014/03/05 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
关于css兼容性问题及一些常见问题汇总
2016/05/03 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
项目资料员岗位职责
2013/12/10 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
节能宣传周活动总结
2014/05/08 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
护理实习生带教计划
2015/01/16 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
居住证明范文
2015/06/17 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python