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系列之数据处理编程实例(一)
May 22 Python
Python学习笔记之常用函数及说明
May 23 Python
简单总结Python中序列与字典的相同和不同之处
Jan 19 Python
Python画图学习入门教程
Jul 01 Python
Python实现的概率分布运算操作示例
Aug 14 Python
Django添加feeds功能的示例
Aug 07 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
Aug 07 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
用python写测试数据文件过程解析
Sep 25 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
浅析pandas随机排列与随机抽样
Jan 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 explode函数实例代码
2012/02/27 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
编写简单的Python程序来判断文本的语种
2015/04/07 Python
用Python抢过年的火车票附源码
2015/12/07 Python
python交互式图形编程实例(三)
2017/11/17 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python3 中把txt数据文件读入到矩阵中的方法
2018/04/27 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
试述DBMS的主要功能
2016/11/13 面试题
中学生学雷锋活动心得体会
2014/03/10 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
户外活动总结范文
2014/04/30 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
学生会自荐信
2019/05/16 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android