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 15 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
Python如何在循环内使用list.remove()
Jun 01 Python
python中id函数运行方式
Jul 03 Python
如何把python项目部署到linux服务器
Aug 26 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 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
2006/12/14 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
详解vue axios二次封装
2018/07/22 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
中英文自我评价语句
2013/12/20 职场文书
个人简历自我评价
2014/01/06 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
基督教婚礼主持词
2014/03/14 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
2016高考感言
2015/08/01 职场文书
python析构函数用法及注意事项
2021/06/22 Python
MySQL 聚合函数排序
2021/07/16 MySQL
MySQL分库分表详情
2021/09/25 MySQL
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers