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之使用Python操作数据库(1)
Nov 25 Python
分享python数据统计的一些小技巧
Jul 21 Python
python 日期操作类代码
May 05 Python
Python3.5文件修改操作实例分析
May 01 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
利用Python校准本地时间的方法教程
Oct 31 Python
python3中利用filter函数输出小于某个数的所有回文数实例
Nov 24 Python
使用Python发现隐藏的wifi
Mar 04 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
python初步实现word2vec操作
Jun 09 Python
Python import模块的缓存问题解决方案
Jun 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实现ODBC数据分页显示一例
2006/10/09 PHP
php.ini 中文版
2006/10/28 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
PHP curl使用实例
2015/07/02 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
jquery text()要注意啦
2009/10/30 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
简析Python的闭包和装饰器
2016/02/26 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
Django保护敏感信息的方法示例
2019/05/09 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
python中树与树的表示知识点总结
2019/09/14 Python
python hashlib加密实现代码
2019/10/17 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
教师求职推荐信范文
2013/11/20 职场文书
工作失误检讨书范文大全
2014/01/13 职场文书
音乐专业自荐信
2014/02/07 职场文书
应聘护士求职信
2014/07/21 职场文书
2015年新农合工作总结
2015/03/30 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL