需求:对文件进行增删改查

由于时间原因,本次代码没有增加任何注释,如有疑问,请联系编辑者:闫龙

其实我也是醉了,看着这些个代码,我脑袋也特么大了,没办法,大神说了,不让用新知识,只可以使用学过的,所以代码复用就不用说了,根本不可能了,希望大家可以看懂这些,别人啃着糟心,自己看着恶心的代码;

优化工作量很大,还未及时进行,还望各位海涵,谢谢!

# 编辑者:闫龙
import os;
Menu = ["查询","添加","修改","删除"]
while True:for i in range(len(Menu)):print(i+1,Menu[i]);UserSelect = input("请选择您要操作的类型>>>:");if (UserSelect == "1") :TitlesDic = {};count = 0;with open("haproxy.conf", mode="r+", encoding="utf8") as  ConfFile:ConfRead = ConfFile.readlines();for i in ConfRead:if (not i[0].isspace()):count += 1;TitlesDic[count] = {};TitlesDic[count][i.strip()] = "";Titles = i.strip();else:TitlesDic[count][Titles] += i;for i in TitlesDic.keys():k = list(dict(TitlesDic[i]).keys())[0]print(i,k);UserSelect = input("请选择您要查询的字段>>>:");for i,j in dict(TitlesDic[int(UserSelect)]).items():print(i+"\n",j);if(UserSelect == "2"):print("目前只能针对bakend字段进行添加操作")bakend = {}com = "backend\t"+input("请输入域名:") + "\n"bakend[com] ="";bakend[com] +=("\tserver\t"+input("Server:")+"\t");bakend[com] +=("weight\t"+input("weight:") + "\t");bakend[com] +=("maxconn\t"+input("maxconn:") + "\n");with open("haproxy.conf",mode="a+") as ConfFile:for i,j in bakend.items():ConfFile.writelines(i+j);print("添加成功!")if(UserSelect == "3"):print("目前只能针对backend www.oldboy20.org字段进行修改操作")bakend = {}WriteDic = {};com = "backend\t"+input("请输入域名:")bakend[com] ="";bakend[com] +=("\tserver\t"+input("Server:")+"\t");bakend[com] +=("weight\t"+input("weight:") + "\t");bakend[com] +=("maxconn\t"+input("maxconn:") + "\n");with open("haproxy.conf", mode="r+", encoding="utf8") as  ConfFile:ConfRead = ConfFile.readlines();for i in ConfRead:if (not i[0].isspace()):Titles = i.strip();WriteDic[Titles] ="";else:WriteDic[Titles] += i;with open("haproxy.conf_new",mode="w+",encoding="utf8") as WriteNewFile:WriteDic.pop("backend www.oldboy20.org")WriteDic.update(bakend);for i,j in WriteDic.items():WriteNewFile.writelines(i+"\n"+j);os.rename("haproxy.conf","haproxy.conf_bak");os.rename("haproxy.conf_new", "haproxy.conf");print("修改成功!")if(UserSelect == "4"):TitlesDic = {};WriteDic = {};count = 0;with open("haproxy.conf", mode="r+", encoding="utf8") as  ConfFile:ConfRead = ConfFile.readlines();for i in ConfRead:if (not i[0].isspace()):count += 1;TitlesDic[count] = {};TitlesDic[count][i.strip()] = "";Titles = i.strip();WriteDic[Titles] ="";else:TitlesDic[count][Titles] += i;WriteDic[Titles] += i;for i in TitlesDic.keys():k = list(dict(TitlesDic[i]).keys())[0]print(i, k);UserSelect = input("请选择您要删除的字段>>>:");with open("haproxy.conf_new",mode="w+",encoding="utf8") as WriteNewFile:WriteDic.pop(list(dict(TitlesDic[int(UserSelect)]).keys())[0])for i,j in WriteDic.items():WriteNewFile.writelines(i+"\n"+j);os.rename("haproxy.conf","haproxy.conf_bak");os.rename("haproxy.conf_new", "haproxy.conf");print("删除成功");

转载于:https://www.cnblogs.com/DragonFire/p/6671389.html

Python文件操作-文件的增删改查相关推荐

  1. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  2. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  3. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  4. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  5. jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)

    使用jdbc连接并操作Oracle数据库(增删改查IDUS) [oracle@zaibei-db ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Pro ...

  6. eggjs增删改查MySQL,nodejs操作mysql实现增删改查

    首先需要安装mysql模块:npm install mysql –save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: //引入mysql模块 var mysql = req ...

  7. nodejs mysql 增删改查_nodejs操作mysql实现增删改查的实例

    首先需要安装mysql模块:npm install mysql --save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: .[活动]2017 CSDN博客专栏评选 [评论送书 ...

  8. python制作一个密码簿_[python]制作密码薄,完成增删改查和文件存储功能。

    题目: 1)用文本编辑器编写一个密码簿文本文件,每一行格式为:姓名,密码 2)编写Python代码,提示:输入文件名,输入文件名后提示:查找,增加,删除,修改,保存 3)选择查找,输入姓名,提示&qu ...

  9. Python FastAPI 框架 操作Mysql数据库 增删改查

    2 比 1 更容易理解,可以先看2(单文件级别) 1.FastAPI 框架 操作Mysql数据库(项目多文件级别) FastAPI 可以使用任何您想要的关系型数据库. 在这里,让我们看一个使用着SQL ...

  10. 记一些Python(Pymysql)建表、增删改查等基础操作(小白适用)

    1.读取sql文件创建数据表 有一个形如下图的sql文件,使用python读取文件并在数据库中创建所有的表. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知 ...

最新文章

  1. 弃 Windows 而拥抱 Linux 之后,这本书教了新玩法
  2. (0069)iOS开发之dequeueReusableCellWithIdentifier的两个方法的区别
  3. android double比较大小吗,Android双向选择控件DoubleSeekBar使用详解
  4. Java客户端操作elasticsearch--查询索引库(带分页)
  5. 【转】关于维生素的那些事
  6. Unix Vi 命令详解
  7. 修改 jtable 显示格式
  8. 企业数字化转型需注意什么
  9. php对接小程序获取表单,PHP实现微信小程序用户授权的工具类
  10. react刷新页面_【跟着官网学React】Hello World
  11. 如何复制或导出托管磁盘
  12. Linux中在终端启动anaconda
  13. 使用python爬取行政区划
  14. 计算机的内存时序参数,装机用户须知:电脑内存时序基础知识
  15. python免费使用谷歌翻译的方法
  16. C++面向对象程序设计——简单的商品销售题
  17. Python实现定时发送监控邮件
  18. 内网虚拟机静态IP设置VMWare内网通外网不通把某一网段白名单虚拟机ping不通主机虚拟机桥接改成非192.168网段服务器与电脑直连共享wifi
  19. Attention!当推荐系统遇见注意力机制
  20. 迅猛快捷——基于Gtid搭建Mysql主从,gtid实现主从切换自动同步——@$23$人鱼的眼泪

热门文章

  1. javascript --- 作用域和闭包
  2. Hyper-v Server 2012 Release Candidate 部署体验
  3. nginx的502错误及常见解决方法汇总
  4. 如何在Django模板中注入全局变量
  5. “Unamed VM”无法初始化 0x80070539
  6. Java学习总结 16个亮点
  7. C#:向C++封送结构体数组
  8. Linux C 读取文件夹下所有文件(包括子文件夹)的文件名
  9. try、catch、finally 和 throw-C#异常处理
  10. HALCON示例程序inner_rectangle1.hdev木板有效区域提取