Python文件操作-文件的增删改查

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

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

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

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

# 编辑者:闫龙
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring事务三大接口

1.事务三大接口 PlatformTransactionManager 事务管理器TransactionDefinition 事务的一些基础信息,如超时时间、隔离级别、传播属性等TransactionStatus 事务的一些状态信息,如是否一个新的事务、是否已被标记为回滚PlatformTransactionManager //根据…

与你相遇——博客园

显示注册博客园已经一年多了,但是却没有一篇文章,从今天开始每天有学习,每天就必有输出。平常自己的学习效率往往很低,有时经常感动自己学了多少东西,可是记住的不多,想通过记笔记方式掩饰战略上的懒惰&…

java 类隔离_Java类装载体系中的隔离性

正文Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯这样的错误而觉得不自然,但是在如果出现了ClassNotFoundExcepti…

java用easyexcel实现读取excell表格内容

引入依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency><!-- https:…

关于移动端的一些tip

移动端的一些tip 开发相关 关于viewport <meta name"viewport" content"namevalue,namevalue"> // 指令 每对键值对都是一个指令&#xff0c;&#xff08;ppk 大神的叫法&#xff09;以下总计共有6对&#xff1a; width设置layout viewport的宽度&am…

java常见异常思维导图_21_异常_第21天(异常、企业面试题,思维导图下载)

今日内容介绍1、异常概述和继承体系2、异常原因以及处理方式3、运行时期异常4、方法重写的异常处理5、Throwable类常见方法6、自定义异常01异常的概述* A: 异常的概述* a:什么是异常* Java代码在运行时期发生的问题就是异常。* b:异常类* 在Java中&#xff0c;把异常信息封装成…

Spring中的InitializingBean接口的使用

InitializingBean接口为bean提供了初始化方法的方式&#xff0c;它只包括afterPropertiesSet方法&#xff0c;凡是继承该接口的类&#xff0c;在初始化bean的时候会执行该方法&#xff0c;具体说spring初始化bean之后执行该方法 配置文件 <bean id"userServices"…

WLAN

WPA加密 1&#xff0e;WPA的功能是替代现行的WEP&#xff08;Wired Equivalent Privacy&#xff09;协议。WPA是继承了WEP基本原理而又解决了WEP缺点的一种新技术。由于加强生成加密密钥的算法&#xff0c;因此即便收集到分组信息并对其进行解析&#xff0c;也几乎无法计算出通…

Spring事务CallbackPreferringPlatformTransactionManager

CallbackPreferringPlatformTransactionManager if (txInfo.transactionAttribute ! null && txInfo.transactionAttribute.rollbackOn(ex)) {} 判断属性的默认值不为nul l且判断当前的异常是RuntimeException还是Error&#xff0c;会返回1&#xff0c;其他异常返回0…

java ranger rest_kafka ranger integration issuse

kafka-rangerranger-1.0.0 kafka-1.0.0(confluent-4.0.0)安装ranger-1.0.0-kafka-plugin下面是安装过程中遇到的一些问题下载并解压 ranger-1.0.0-kafka-plugin.tar.gz修改配置文件install.propertiesCOMPONENT_INSTALL_DIR_NAME/usr/local/confluent/POLICY_MGR_URLhttp://192…

vuejs组件通信

<body><div id"example"><father></father></div> </body> <script>Vue.component(child, {// 声明 propsprops: [message],// 就像 data 一样&#xff0c;prop 可以用在模板内// 同样也可以在 vm 实例中像 “this.messag…

Windows 10 Creators Update [ISO官方镜像][15063][1703][x64][x86][创意者更新正式版]

请把下载地址手动复制到迅雷里面去,谢谢! 【64 位简体中文专业/家庭版】 文件名&#xff1a;cn_windows_10_multiple_editions_version_1703_updated_march_2017_x64_dvd_10194190.iso SHA1&#xff1a;054C741DED8989F4D0D419946EB37182F20E4482 文件大小&#xff1a;4.27GB 下…

@PostConstruct注解学习

PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。 Java中该注解的说明&#xff1a;PostConstruct该注解被用来修饰一个非静态的void&#xff08;&#xff09;方法。被PostConstruct修饰的方法会在服务器加载Servlet的时候运行&#xff0c;并且只会被服务器…

java mathematica_用Java获取Mathematica图像

我试图使用J / Link从Mathematica获取图像到Java.我可以在Mathematica中打印图像,如下所示&#xff1a;Print[ Graphics[Raster[ img[[1]] ], AspectRatio->Automatic, ImageSize->530 ] ];我试过以各种方式从Mathematica函数返回数据&#xff1a;Return [ Image[Graphic…

C语言 · 出栈次序

标题&#xff1a;出栈次序 X星球特别讲究秩序&#xff0c;所有道路都是单行线。一个甲壳虫车队&#xff0c;共16辆车&#xff0c;按照编号先后发车&#xff0c; 夹在其它车流中&#xff0c;缓缓前行。 路边有个死胡同&#xff0c;只能容一辆车通过&#xff0c;是临时的检查站&a…

idea for mac 控制台 mvn command not found

一&#xff1a;现在的IDEA 自带maven库maven库的地址如下图查看 二:完idea 需要配置maven库的环境变量才能找到该命令 Mac系统的环境变量&#xff0c;加载顺序为&#xff1a; a. /etc/profile b. /etc/paths c. ~/.bash_profile d. ~/.bash_login e. ~/.profile f. ~/.bashrc 其…

java swing 总结_java实验之swing图形用户界面程序设计及总结

8.1组件和容器顶层容器有小应用程序(Applet和JApplet)、对话框(Dialog和JDialog)、框架(Frame和JFrame)。这些容器都存在于java.swing*;中.一般容器有面板(JPanel)、滚动窗格(JScrollPane)、分裂窗格(JSplitPane)、选项卡窗格(JTabbedPane)和工具条(JToolBar).专用容器有什么作…

06jQuery-04-DOM操作

jQuery既然是为了帮助你能从js的繁琐中解脱出来&#xff0c;自然在DOM操作上也有自己的一套。1、修改Text和HTML之前我们提到过&#xff0c;如果用JS的话&#xff0c;你要修改Text或者HTML需要用到其innerHTML和innerText属性&#xff0c;但是放在jQuery里面&#xff0c;你需要…

解决 swap file “*.swp”already exists!问题

Linux下难免要开启多个vim共同编辑同一个文件&#xff0c;这时再次保存就会出现&#xff1a; swap file "*.swp" already exists! [O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:原因&#xff1a; 使用vim编辑文件实际是先copy一份临…