python增删改查csv文件_【练习】Python第四次:实现对文件的增删改查

import os #os包含改名和删除文件函数

def file_handler(backend_data,res = None,type='fetch'):if type == 'fetch':

with open('haproxy.conf', 'r') as read_f:

tag= False #找到标志

ret =[]for read_line inread_f:if read_line.strip() == backend_data: #匹配到数据

tag =Truecontinue

if tag and read_line.startswith('backend'): #到下一个backend停止

break

if tag: #找到后读出后面的数据

print('%s' % read_line, end='')

ret.append(read_line)returnretelif type == 'change':

with open('haproxy.conf', 'r') as read_f, \

open('haproxy.conf_new', 'w') as write_f:

tag=False

has_write=Falsefor read_line inread_f:if read_line.strip() ==backend_data:

tag=Truecontinue

if tag and read_line.startswith('backend'):

tag=Falseif nottag:

write_f.write(read_line)else:if nothas_write:for record inres:

write_f.write(record)

has_write=True

os.rename('haproxy.conf', 'haproxy.conf.bak')

os.rename('haproxy.conf_new', 'haproxy.conf')

os.remove('haproxy.conf.bak')deffetch(data):#print('这是查询功能')

#print('用户数据是',data)

backend_data ='backend %s' %datareturnfile_handler(backend_data)defadd():pass

#[{'backend':'www.oldboy1.org','record':{'server':'2.2.2.4','weight':20,'maxconn':3000}},{'backend':'www.oldboy1.org','record':{'server':'2.2.2.5','weight':30,'maxconn':4000}}]

defchange(data):#print('这是修改功能')

#print('用户输入数据是:',data)

backend = data[0]['backend'] #从用户传参提取www.oldboy1.org

backend_line = 'backend %s' %data[0]['backend']#内容:backend www.oldboy1.org

#拼接字符串old_server_record,把用户传参的源server信息整理出来

old_server_record = '%sserver %s %s weight %s maxconn %s\n' %(' '*8,data[0]['record']['server'],

data[0]['record']['server'],

data[0]['record']['weight'],

data[0]['record']['maxconn'])#用户传参的目标server信息

new_server_record = '%sserver %s %s weight %s maxconn %s\n' %(' '*8,data[1]['record']['server'],

data[1]['record']['server'],

data[1]['record']['weight'],

data[1]['record']['maxconn'])print('用户想要修改的记录是:',old_server_record)

res=fetch(backend)print('来自change函数结果--》',res)if not res or old_server_record not inres:return '你要修改的记录不存在'

else:

index=res.index(old_server_record)

res[index]=new_server_record

res.insert(0,'%s\n' %backend_line)

file_handler(backend_line,res=res,type='change')defdelete():pass

#Python文件里面只写不会运行的功能,测试代码在下面写

if __name__ == '__main__':

msg='''1:查询

2:添加

3:修改

4:删除

5:退出'''msg_dic={'1':fetch,'2':add,'3':change,'4':delete,

}whileTrue:print(msg)

choice= input('请输入你的选项:').strip()if not choice:continue

if choice == '5':breakdata= input('请输入你的数据:').strip()if choice != '1': #查询输入的是字符串,其他需要处理格式化数据

data =eval(data)

res=msg_dic[choice](data)print('最终结果是————》',res)

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

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

相关文章

java封装练习

java封装练习 /*** 以面向对象的思想,编写自定义类描述图书信息。设定属性包括:书名、作者、出版社名、价格* 方法包括:信息介绍** 要求:* 1、设置属性的私有访问权限,通过公有的get、set方法实现对属性的访问* 2、限…

接口自动化测试_Python自动化测试学习路线之接口自动化测试「模块四」

01.接口自动化测试概念(接口测试的定义与意义;接口测试的实现方式和接口自动化的实现流程)02.HTTP协议(通信协议原理;HTTP与HTTP协议详解(请求,响应,请求方法,状态码)、session、cookie、token鉴权)03.JSON数据格式(JSON与XML的比较;JSON的语法规则;JSON的数据类型)…

java继承实现

java继承实现 /*** 继承*/ public class Animal { //默认animal集成objectprivate String color;private int age;public Animal(){super();}public Animal(String color,int age){this.color color;this.age age;}public void eat(){System.out.println("吃饭"…

spss多元非线性曲线拟合_快速掌握SPSS数据分析

在和SPSSAU的用户交流中,我们发现本是非常简单的数据分析原理以及软件工具,结果非常多的同学完全不会SPSS数据分析,不知道如何学习,即使学过相关原理,但对具体数据进行分析时也有非常多问题。这不禁让我们思考&#xf…

继承情况下构造方法的调用过程-java

继承情况下构造方法的调用过程-java super关键字:可以看做是直接父类对象的引用。每个子类对象都会有一个super引用 指向其直接父类对象。super可以:1、调用成员变量 super.color 2、调用成员方法 super.show 3、调用构造方法 super&#xff0…

重写equals方法---java

重写equals方法---java /*** 重写equals方法*/ public class Animal {String color;private int age;public boolean equals(Object obj){Animal other (Animal)obj;//如果参数是null,直接返回falseif (objnull){return false;}//如果两个变量指向同一个空间&…

python循环函数怎么改变变量_python:循环定义多个变量

我们可能会时长碰到这样一个场景,计算得到一个非固定值,需要根据这个值定义相同数量个变量。实现方式的核心是exec函数,exec函数可以执行我们输入的代码字符串。exec函数的简单例子:>>>exec (print "hello world")hello w…

多态--Java

多态--Java 多态指的是同一个方法调用,由于对象不同可能会有不同的行为。编译器类型指的是‘’左边的类型,运行时类型指的是‘’右边的类型。当有继承关系时,可能发生编译器 和运行期类型不同的情况,即编译期类型是父类类型&…

tex文件用什么软件打开_pdf怎么打开?用什么软件打开pdf?

时光荏苒,转眼2020年还有几个月就结束了,我们公司最近举办了"2020年工作季度总结"大会,领导要求每个部门的不同职员要写一份总结,讲述自己这段时间的经验和教训。而我作为办公室文秘,负责收集他们的个人总结…

Java一个小练习----String类型转换int类型

Java一个小练习 把字符串str分割程String数组,然后转换成int数组,排序 String str "123 345 89 93 2 6573 223" 然后在拼接成一个字符串如下: "2 89 93 123 223 345 6573" /*** String str "123 345 89 93 2…

高级语言的编译过程和解释过程_进来了解一下C语言真正的编译过程看你掌握了吗?...

C语言 前言说实话,很多人做了很久的C/C,也用了很多IDE,但是对于可执行程序的底层生成一片茫然,这无疑是一种悲哀,可以想象到大公司面试正好被问到这样的问题,有多悲催不言而喻,这里正由于换工作的缘故&…

final关键字---Java

final关键字---Java final关键字的作用1、修饰变量:被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。2、修饰方法:该方法不可被子类重写,但是可以被重载。3、修饰类:修饰的类不能被继承。注意:1、…

以30字符宽居中输出python字符串_Python3 字符串

isdigit 和 isnumeric的区别?def dn():dgt[]num[]c0for c in range(2**16):chchr(c)if ch.isdigit():dgt.append(ch)if ch.isnumeric():num.append(ch)print(digits:,dgt)print(numeric:,num)dn()以上代码执行输出结果为:digits: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ,…

抽象类和抽象方法----java

抽象类和抽象方法----java 抽象方法:使用abstract修饰的方法,没有方法体,只能声明。定义的是一种“规范”,就是告诉子类必须要给抽象 方法提供具体的实现。抽象类:使用abstract修饰的类。通过abstract方法定义规范&am…

python序列类型包括字符串_python序列类型字符串列表元组

字符串序列:序号 列012345678索引序列类型,就是带有索引的数据类型:字符串/列表/元祖name wuhao dsb# 012345678name3 name[0]name2 name[6:]# 字符串/列表/元组共有方法# 长度print(len(name):,len(name))print(wo in name)print(w not in name)for i in name:print(i)#列表…

下载java离线文档的方法

第一种使用方法,直接下载 https://stackoverflow.com/questions/6986993/how-to-download-javadoc-to-read-offline 第二种方法,使用zeal软件 zeal简介:https://zealdocs.org/ 个人认为第二种方法好一点

接口-----java

接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须你能....”的思想。 如果你是天使,则必须能飞。如果你是汽车,则必须能跑。接口的本质就是契约,就像我们人间 的法律一样,大家都要遵守。…

如何利用flume进行日志采集

介绍 Apache Flume 是一个分布式、可靠、高可用的日志收集、聚合和传输系统。它常用于将大量日志数据从不同的源(如Web服务器、应用程序、传感器等)收集到中心化的存储或数据处理系统中。 基本概念 Agent(代理): …

python 概率分布类型检验_统计学:假设检验Python案例实现+概率论基础知识回顾...

先通过一个案例说明单样本检验的过程:案例分析:公司制造出10台引擎供测试使用,每一台的排放水平如下:15.6 16.2 22.5 20.5 16.4 19.4 16.6 17.9 12.7 13.9请判断公司生产的引擎是否符合政府规定呢?根据政府发布的新排放…

接口应用:内部比较器Comparable

接口应用:内部比较器Comparable public interface Comparable {public int compareTo(Object obj); }public class Book implements Comparable{private String bookName;private String author;private String publisher;private double price;Overridepublic int…