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中的类与实例
Apr 27 Python
Python下载网络文本数据到本地内存的四种实现方法示例
Feb 05 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
Python设计模式之解释器模式原理与用法实例分析
Jan 10 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
python3中numpy函数tile的用法详解
Dec 04 Python
深入浅析python的第三方库pandas
Feb 13 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
Mar 09 Python
Django 解决model 反向引用中的related_name问题
May 19 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 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生成WAP页面
2006/10/09 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
PHP读取文件,解决中文乱码UTF-8的方法分析
2020/01/22 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
Python爬豆瓣电影实例
2018/02/23 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python删除不需要的python文件方法
2018/04/24 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
python实现弹跳小球
2019/05/13 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
pandas的相关系数与协方差实例
2019/12/27 Python
python中的django是做什么的
2020/07/31 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
丧事主持词大全
2014/04/02 职场文书
会计师事务所实习证明
2014/11/16 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL