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实现统计代码行数的方法
May 22 Python
利用Python破解斗地主残局详解
Jun 30 Python
python实现图像识别功能
Jan 29 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
Python实现最常见加密方式详解
Jul 13 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
python实现PCA降维的示例详解
Feb 24 Python
python如何进行矩阵运算
Jun 05 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
django美化后台django-suit的安装配置操作
Jul 12 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 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 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python函数式编程
2017/07/20 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
Python使用functools实现注解同步方法
2018/02/06 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
俄罗斯宠物用品网上商店:ZooMag
2019/12/12 全球购物
加拿大探亲邀请信
2014/01/28 职场文书
企业文明单位申报材料
2014/05/16 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
英语演讲开场白
2015/05/29 职场文书
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
python全面解析接口返回数据
2022/02/12 Python
vue实现移动端div拖动效果
2022/03/03 Vue.js