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通过websocket与js客户端通信示例分析
Jun 25 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
Mar 14 Python
python实现批量按比例缩放图片效果
Mar 30 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
一行Python代码制作动态二维码的实现
Sep 09 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
pyCharm 实现关闭代码检查
Jun 09 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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 session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
2020/07/03 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
运动会领导邀请函
2014/02/05 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
读后感作文评语
2014/12/25 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
周一问候语大全
2015/11/10 职场文书
Javascript设计模式之原型模式详细
2021/10/05 Javascript