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映射列表实例分析
Jan 26 Python
Django发送html邮件的方法
May 26 Python
解析Python编程中的包结构
Oct 25 Python
python字符串的常用操作方法小结
May 21 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
在unittest中使用 logging 模块记录测试数据的方法
Nov 30 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
基于Tensorflow高阶读写教程
Feb 10 Python
python数据处理——对pandas进行数据变频或插值实例
Apr 22 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 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
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
PHP的分页功能
2007/03/21 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
DOM 中的事件处理介绍
2012/01/18 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
使用jquery实现的循环连续可停顿滚动实例
2016/11/23 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
深入理解Python变量与常量
2016/06/02 Python
详解python中的装饰器
2018/07/10 Python
python批量爬取下载抖音视频
2019/06/17 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
pytorch 共享参数的示例
2019/08/17 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
英语专业推荐信
2013/11/16 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
高校十八大报告感想
2014/01/27 职场文书
致100米运动员广播稿
2014/02/14 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
服务整改报告
2014/11/06 职场文书
颐和园导游词400字
2015/01/30 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书