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

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

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

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

  1. # 编辑者:闫龙
  2. import os;
  3. Menu = ["查询","添加","修改","删除"]
  4. while True:
  5. for i in range(len(Menu)):
  6. print(i+1,Menu[i]);
  7. UserSelect = input("请选择您要操作的类型>>>:");
  8. if (UserSelect == "") :
  9. TitlesDic = {};
  10. count = 0;
  11. with open("haproxy.conf", mode="r+", encoding="utf8") as ConfFile:
  12. ConfRead = ConfFile.readlines();
  13. for i in ConfRead:
  14. if (not i[0].isspace()):
  15. count += 1;
  16. TitlesDic[count] = {};
  17. TitlesDic[count][i.strip()] = "";
  18. Titles = i.strip();
  19. else:
  20. TitlesDic[count][Titles] += i;
  21. for i in TitlesDic.keys():
  22. k = list(dict(TitlesDic[i]).keys())[0]
  23. print(i,k);
  24. UserSelect = input("请选择您要查询的字段>>>:");
  25. for i,j in dict(TitlesDic[int(UserSelect)]).items():
  26. print(i+"\n",j);
  27. if(UserSelect == ""):
  28. print("目前只能针对bakend字段进行添加操作")
  29. bakend = {}
  30. com = "backend\t"+input("请输入域名:") + "\n"
  31. bakend[com] ="";
  32. bakend[com] +=("\tserver\t"+input("Server:")+"\t");
  33. bakend[com] +=("weight\t"+input("weight:") + "\t");
  34. bakend[com] +=("maxconn\t"+input("maxconn:") + "\n");
  35. with open("haproxy.conf",mode="a+") as ConfFile:
  36. for i,j in bakend.items():
  37. ConfFile.writelines(i+j);
  38. print("添加成功!")
  39. if(UserSelect == ""):
  40. print("目前只能针对backend www.oldboy20.org字段进行修改操作")
  41. bakend = {}
  42. WriteDic = {};
  43. com = "backend\t"+input("请输入域名:")
  44. bakend[com] ="";
  45. bakend[com] +=("\tserver\t"+input("Server:")+"\t");
  46. bakend[com] +=("weight\t"+input("weight:") + "\t");
  47. bakend[com] +=("maxconn\t"+input("maxconn:") + "\n");
  48. with open("haproxy.conf", mode="r+", encoding="utf8") as ConfFile:
  49. ConfRead = ConfFile.readlines();
  50. for i in ConfRead:
  51. if (not i[0].isspace()):
  52. Titles = i.strip();
  53. WriteDic[Titles] ="";
  54. else:
  55. WriteDic[Titles] += i;
  56. with open("haproxy.conf_new",mode="w+",encoding="utf8") as WriteNewFile:
  57. WriteDic.pop("backend www.oldboy20.org")
  58. WriteDic.update(bakend);
  59. for i,j in WriteDic.items():
  60. WriteNewFile.writelines(i+"\n"+j);
  61. os.rename("haproxy.conf","haproxy.conf_bak");
  62. os.rename("haproxy.conf_new", "haproxy.conf");
  63. print("修改成功!")
  64. if(UserSelect == ""):
  65. TitlesDic = {};
  66. WriteDic = {};
  67. count = 0;
  68. with open("haproxy.conf", mode="r+", encoding="utf8") as ConfFile:
  69. ConfRead = ConfFile.readlines();
  70. for i in ConfRead:
  71. if (not i[0].isspace()):
  72. count += 1;
  73. TitlesDic[count] = {};
  74. TitlesDic[count][i.strip()] = "";
  75. Titles = i.strip();
  76. WriteDic[Titles] ="";
  77. else:
  78. TitlesDic[count][Titles] += i;
  79. WriteDic[Titles] += i;
  80. for i in TitlesDic.keys():
  81. k = list(dict(TitlesDic[i]).keys())[0]
  82. print(i, k);
  83. UserSelect = input("请选择您要删除的字段>>>:");
  84. with open("haproxy.conf_new",mode="w+",encoding="utf8") as WriteNewFile:
  85. WriteDic.pop(list(dict(TitlesDic[int(UserSelect)]).keys())[0])
  86. for i,j in WriteDic.items():
  87. WriteNewFile.writelines(i+"\n"+j);
  88. os.rename("haproxy.conf","haproxy.conf_bak");
  89. os.rename("haproxy.conf_new", "haproxy.conf");
  90. print("删除成功");

Python文件操作-文件的增删改查的更多相关文章

  1. python操作mysql数据库增删改查的dbutils实例

    python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...

  2. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

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

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

  4. C#操作Excel数据增删改查示例

    Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...

  5. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  6. python学习之-成员信息增删改查

    python学习之-成员信息增删改查 主要实现了成员信息的增加,修改,查询,和删除功能,写着玩玩,在写的过程中,遇到的问题,旧新成员信息数据的合并,手机号和邮箱的验证,#!/usr/bin/env p ...

  7. sqlite数据库操作详细介绍 增删改查,游标

    sqlite数据库操作详细介绍 增删改查,游标     本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code     package com.example ...

  8. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

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

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

  10. python manage.py shell 的增删改查

    python manage.py shell 的增删改查 guoguo-MacBook-Pro:myblog guoguo$ python manage.py shell Python 3.5.1 ( ...

随机推荐

  1. 再看case语句

    再看case语句,case语句只处理单条记录,而不是set 列名的使用,可以当做数值来使用: case when 后面简直是完美的的,什么东西都是能放的,只要是一个逻辑上的true/false的逻辑就 ...

  2. jenkins+maven+Tomcat8实现热部署

    个人记录 公司使用jenkins实现代码自动更新并部署 采用jenkins安装方式为war包,版本为:2.138.3,启动方式为Tomcat启动jenkins, 该博客操作步骤有些地方进行简化,各位需 ...

  3. Girls' research HDU - 3294(马拉车水题)

    题意: 求最长回文串 长度要大于等于2  且输出起点和终点  输出回文串字符 这个字符还是要以给出的字符为起点a 输出 解析: 分析一下s_new串就好了 #include <iostream& ...

  4. hbase 多个过滤器组合(列表)

    使用FilterList要保证过滤器的顺序需要使用List<Filter> private static void mutilFilterData() throws IOException ...

  5. 洛谷 P3942 将军令 解题报告

    P3942 将军令 题目描述 又想起了四月. 如果不是省选,大家大概不会这么轻易地分道扬镳吧? 只见一个又一个昔日的队友离开了机房. 凭君莫话封侯事,一将功成万骨枯. 梦里,小\(F\)成了一个给将军 ...

  6. 那些ie6已支持的方法属性,成为事实标准。或者方便大家的api

    很多api,都是ie6实现,后来其他w3c或其他浏览器支持,或者用类似的方法模拟 onselectionchange  判断选区改变 ,chrome已支持 Element.contains   判断元 ...

  7. 解题:TJOI 2015 组合数学

    题面 通过这个题理解了一下反链的概念,更新在图论知识点里了 每个点向右和下连边可以建出一张图,这个题事实上是让我们求图的最小链覆盖.Dilworth定理告诉我们,最小链覆盖等于最长反链(反链:DAG中 ...

  8. [POI2012]STU-Well

    题意翻译 给定一个非负整数序列A,每次操作可以选择一个数然后减掉1,要求进行不超过m次操作使得存在一个Ak=0且max⁡(∣xi−xi−1∣)最小,输出这个最小值以及此时最小的k (1≤n≤1 000 ...

  9. Qt 查找功能

    版权声明 该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处!     导语 这一篇我们来加上查找菜单的功能.因为要涉及Qt Creator的很多实用功 ...

  10. 【题解】【雅礼集训 2017 Day5】远行 LOJ 6038 LCT

    Prelude 快要THUWC了,练一练板子. 传送到LOJ:o(TヘTo) Solution 首先有一条定理. 到树中任意一点的最远点一定是直径的两个端点之一. 我也不会证反正大家都在用,似乎可以用 ...