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求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
利用Python的Django框架生成PDF文件的教程
Jul 22 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
python获取多线程及子线程的返回值
Nov 15 Python
Pandas之drop_duplicates:去除重复项方法
Apr 18 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
Python3标准库总结
Feb 19 Python
关于python字符串方法分类详解
Aug 20 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
Python sublime安装及配置过程详解
Jun 29 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 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计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php注册登录系统简化版
2020/12/28 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
vue filters的使用详解
2018/06/11 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
python中关于for循环的碎碎念
2017/06/30 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
数学专业推荐信范文
2013/11/21 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
保送生自荐信范文
2015/03/26 职场文书
焦裕禄观后感
2015/06/03 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
大学生读书笔记大全
2015/07/01 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
pycharm debug 断点调试心得分享
2021/04/16 Python
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技