iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python3配置文件的增删改查,记录一
  • 789
分享到

python3配置文件的增删改查,记录一

配置文件 2023-01-31 00:01:07 789人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1 #!/usr/bin/env python3 2 3 import JSON #json模块,用于将像字典的字符串转换为字典 4 import re #re模块,

  1 #!/usr/bin/env python3
  2 
  3 import JSON             #json模块,用于将像字典的字符串转换为字典
  4 import re               #re模块,查找替换
  5 import shutil           #copy文件用
  6 shutil.copyfile('conf','conf.bak') #shutil.copyfile(文件1,文件2):不用打开文件,直接用文件名进行覆盖copy。
  7 #全局变量函数
  8 def env():
    global user_dic,insert_addr,server,weight,maxconn,insert_conf,rec,ser,wei,max #global定义全局变量,这样函数外也能调用该变量
    user_dic = json.loads(user_input)  # 将用户输入类似字典字符串转换为字典
    insert_addr = list(user_dic.items())[0][0] + ' ' + list(user_dic.items())[0][1]  # 将用户输入信息第一个keys和values取出来
    rec = list(user_dic.keys())[1]
    ser = list(user_dic[rec].keys())[0]
    wei = list(user_dic[rec].keys())[1]
    max = list(user_dic[rec].keys())[2]
    if rec in user_dic.keys():
        if ser in user_dic[rec].keys():
            server = user_dic[rec][ser]
        if wei in user_dic[rec].keys():
            weight = user_dic[rec][wei]
        if max in user_dic[rec].keys():
            maxconn = user_dic[rec][max]
        insert_conf = '%s %s %s %s %s %s %s' % (ser, server, server, wei, weight, max, maxconn)  # 将信息格式化
    else:
        print('输入有误')
env
 26 #将文件加入列表函数
 27 def list_lines():
    global lines
    with open('conf.bak', 'r') as f:
        for line in f:
            f.seek(0)  # 文件指针指定为0开始
            lines = f.readlines()  # 将文件每行读取到列表lines中,包括换行符\n和缩进\t。
View Code
 33 #判断是否是json格式函数
 34 def check_json_fORMat():
    try:
        json.loads(user_input,encoding='utf-8')   #检测user_input是否是json格式,不是则异常
    except ValueError:       #异常报错,如没有异常这条永远不走
        return False          #异常报错返回False
    return True             #没有异常返回True
View Code
 40 #判断字符串是否为数字函数

41 def isnub(s):
    try:
        nb = float(s) #将字符串转换成数字成功则返回True
        return True
    except ValueError as e:
        return False #如果出现异常则返回False
View Code
 47 #索引值是否存在函数
 48 def if_index():
    try:
        lines.index(insert_index)
        return False
    except ValueError:
        return True
View Code
 54 #判断输入不能为空
 55 def if_else():
    if len(user_input) == 0:
        print('输入不能为空,请重新输入!')
        return True
    else:
        print('输入有误,请输入json格式字符串!')
        return False
View Code
 62 #输出文件变化
 63 def change():
    with open('conf', 'r') as f:
        print('修改之前:')
        for line in f:
            if insert_addr in line:
                print(line + next(f))
    with open('conf', 'r') as f:
        print('修改之后:')
        for line in f:
            if insert_addr in line:
                print(line + next(f) + next(f))
View Code
 74 #配置文件增加函数
 75 def increase_conf():
    global user_input,insert_index
    while True:
        user_input = input('输入要增加配置文件内容:').strip()
        if check_json_format() and isnub(user_input) == False:    #如果json判断函数返回True,则为json格式
            env()
            list_lines()
            if insert_addr+'\n' in lines:
                insert_index = lines.index(insert_addr+'\n')  # 获取insert_addr+\n在列表lines中的索引位置
                if if_index():
                    lines.insert(insert_index + 2, '        ' + insert_conf + '\n')  # 在列表中指定索引位置插入信息
                    with open('conf', '+w') as conf:
                        conf.write(''.join(lines))  # join将列表内容写入文件中以''隔开,也可以以'\n'隔开
                    print('已将%s添加到conf文件中'%(insert_conf))
                    change()
                    return True
                else:
                    print('%s在conf文件中不存在'%(insert_addr))
                    return False
            else:
                print('%s在conf文件中不存在'%(insert_addr))
                return False
        if if_else():
            continue
        else:
            continue
View Code
101 #配置文件删除函数
102 def del_conf():
   global user_input,insert_index
    while True:
        user_input = input('请输入需要删除配置信息:').strip()
        if check_json_format() and isnub(user_input) == False:  # 如果json判断函数返回True,则为json格式
            env()
            list_lines()
            if insert_addr + '\n' in lines:
                if '        '+insert_conf+'\n' in lines:
                    insert_index = lines.index('        '+insert_conf+'\n')
                    if if_index():
                        del[lines[insert_index]]
                        with open('conf', '+w') as conf:
                            conf.write(''.join(lines))  # join将列表内容写入文件中以''隔开,也可以以'\n'隔开
                        return True
                    else:
                        print('%s %s %s %s %s %s %s在文件conf中不存在'%(ser, server, server, wei, weight, max, maxconn))
                        continue
                else:
                    # print('%s不存在conf中'%(insert_conf))
                    print('%s %s %s %s %s %s %s在文件conf中不存在' % (ser, server, server, wei, weight, max, maxconn))
                    continue
            else:
                print('%s在文件conf中不存在'%(insert_addr))
                continue
        if if_else():
            continue
        else:
            continue
View Code
131 #配置文件修改函数
132 def modify_conf():
   global user_input
    while True:
        user_input = input('请输入需要修改的内容:').strip()
        if check_json_format() and isnub(user_input) == False:  # 如果json判断函数返回True,则为json格式
            env()
            list_lines()
            if insert_addr+'\n' in lines:
                if '        '+insert_conf+'\n' in lines:
                    while True:
                        user_input =  input('需要修改为:').strip()
                        if len(user_input) == 0:
                            print('输入不能为空,请重新输入!')
                            continue
                        else:
                            open('conf', 'w').write(re.sub(insert_conf, user_input,open('conf.bak').read()))#读取文件conf.bak中
                            # insert_conf替换为user_input,这里re.sub是查找替换,正则表达式。
                            print('已将:%s\n'
                                  '修改为:%s'%(insert_conf,user_input))
                            return True
        if if_else():
            continue
        else:
            continue
View Code
156 #配置文件查看函数
157 def see_conf():
    while True:
        user_input = input('请输入需要查找的内容:').strip()
        if len(user_input) == 0:
            print('输入不能为空,请重新输入')
            continue
        else:
            with open('conf','r') as f:
                    for line in f:
                        if user_input in line.strip():
                            print(line)
                            print(next(f))
                            return
                    else:
                        print('无法查找')
                        return
View Code
173 while True:
174     print('1、%s 2、%s 3、%s 4、%s'%('增加','删除','修改','查看'))
175     user_input = input('请选择对配置文件的动作:').strip()
176     if len(user_input) == 0:
177         print('输入不能为空,请重新输入!')
178         continue
179     if user_input == '1' or user_input == '增加':
180         increase_conf()
181         break
182     if user_input == '2' or user_input == '删除':
183         del_conf()
184         break
185     if user_input == '3' or user_input == '修改':
186         modify_conf()
187         break
188     if user_input == '4' or user_input == '查看':
189         see_conf()
190         break
191     else:
192         print('输入有误')
193         continue

 

--结束END--

本文标题: python3配置文件的增删改查,记录一

本文链接: https://www.lsjlt.com/news/181624.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python3配置文件的增删改查,记录一
    1 #!/usr/bin/env python3 2 3 import json #json模块,用于将像字典的字符串转换为字典 4 import re #re模块,...
    99+
    2023-01-31
    配置文件
  • python3-字典的增删改查
    # Auther: Aaron Faninfo = {    "stull01":"alen zhang",    "stull02":"si li",    "stull03":"san zhang",}#查print(info)prin...
    99+
    2023-01-31
    字典
  • python3 列表的增删改查
    list 增、删、改、查回顾  索引、切片、步长li = ['alex', 123, True, (1, 2, 3, 'wusir'), [1, 2, 3, '小明',], {'name':'alex'}] #li中元素索引号为li = [...
    99+
    2023-01-31
    列表
  • C#操作配置文件app.config、web.config增删改
    一、概述 应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是 App.Config(ExeName.exe.config)。 配置文件,对于程序本...
    99+
    2024-04-02
  • php对json文件的增删改查
    随着互联网的发展,数据的交互越来越频繁,其中JSON(JavaScript Object Notation)成为大家喜爱的数据传输格式之一。因此,处理JSON数据变得越来越重要。本文将介绍使用PHP处理JSON文件的增、删、改、查操作。JS...
    99+
    2023-05-24
  • SpringBoot配置MyBatis-Plus实现增删查改
    目录1 MyBatis-Plus 2 Maven依赖3 Spring Boot配置4 UserEntity5 UserMapper6 Serv...
    99+
    2024-04-02
  • Node.js对MySQL数据库的增删改查实战记录
    目录在项目中操作数据库的三大步骤操作数据库的具体步骤一:安装MySQL模块及express模块二:通过express创建一个服务器三:配置MySQL模块四:测试 mysql 模块能否...
    99+
    2024-04-02
  • [PYTHON]简单的文件增删改查处理
    快一个月木有更新了,在这段时间内,博主除了忙工作外,就一直在研究python编程,据圈内朋友闲聊,python应该是未来一个运维攻城狮除了shell以外必备的LINUX脚本语言,所以就硬着头皮,按照老男孩的python视频讲座,把自己的研...
    99+
    2023-01-31
    简单 文件 PYTHON
  • 【MyBatis持久层框架】配置文件实现增删改查实战案例
    文章目录 1. 前言 2. 准备工作 3. 查询所有数据 3.1 编写接口方法 3.2 编写sql语句 3.3 编写测试方法 3.4 resultMap的使用 4. 查询详情 ...
    99+
    2023-08-17
    mybatis java 开发语言 maven
  • 【MySQL】一文带你了解表的增删改查 CRUD
    文章目录 1. 增加(Create)1.1 单行插入 + 全列插入1.2 多行插入 + 指定列插入 2. 查询(Retrieve)2.1 全列查询2.2 指定列查询2.3 查询字段为表达式2.4 别名2.5 去重2.6 排序 ...
    99+
    2023-08-16
    mysql 数据库 数据结构
  • 一文搞懂Golang文件操作增删改查功能(基础篇)
    前言 目前,Golang 可以认为是服务器开发语言发展的趋势之一,特别是在流媒体服务器开发中,已经占有一席之地。很多音视频技术服务提供商也大多使用 Golang 语言去做自己的后台服...
    99+
    2024-04-02
  • nodejs项目中如何增删改查文件
    本篇内容主要讲解“nodejs项目中如何增删改查文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“nodejs项目中如何增删改查文件”吧!这里主要介绍nodej...
    99+
    2024-04-02
  • ThinkPHP5.1中怎么实现增删改查操作日志记录
    今天小编给大家分享一下ThinkPHP5.1中怎么实现增删改查操作日志记录的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、...
    99+
    2023-07-06
  • 【MyBatis持久层框架】配置文件实现增删改查实战案例(下)
    前言 前面我们学习了 MyBatis 持久层框架的原生开发方式和 Mapper 代理开发两种方式,解决了使用 JDBC 基础性代码操作数据库时存在的硬编码和操作繁琐的问题。 在配置文件实现增删改查上篇...
    99+
    2023-09-11
    mybatis java 数据库
  • C#中XML文件内容增删改查的方法
    本篇内容介绍了“C#中XML文件内容增删改查的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是XMLXML是一种可扩展标记语言(EX...
    99+
    2023-06-29
  • Python对XML文件实现增删改查操作
    目录PYTHON 操作 XML读取XML文件遍历XML元素查找XML元素添加XML元素修改XML元素PYTHON 操作 XML 读取XML文件 关于XML的介绍 <data&g...
    99+
    2022-11-13
    Python XML增删改查 Python XML操作 Python XML修改
  • Mybatis基于xml配置实现单表的增删改查功能
    Mybatis入门-基于配置实现单表的增删改查 Mybatis简介 官网链接:https://mybatis.org/mybatis-3/zh/index.html。更加详细的信息可...
    99+
    2024-04-02
  • Elasticsearch文档索引的增删改查方法
    这篇文章主要介绍“Elasticsearch文档索引的增删改查方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Elasticsearch文档索引的增删改查方法”文章能帮助大家解决问题。接口幂等性0...
    99+
    2023-06-30
  • Golang文件操作增删改查功能的示例分析
    这篇文章主要介绍Golang文件操作增删改查功能的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!正文开始之前,讲一个非常有意思的小桥段。最开始接触 Golang 这种语言的时候,我总感觉它和 Google 单...
    99+
    2023-06-14
  • Python利用txt文件对Mysql进行增删改查移
    目录一、关系数据库1.数据模型2.面相对象模型二、了解关系数据库的概念和特点1.基本概念2.基本特点三、常用字段数据类型四、在spyder中调用文件TXT内容进入程序一、关系数据库 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作