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)
python增删改查csv文件_【练习】Python第四次:实现对文件的增删改查相关推荐
- c++ 写入文件_利用Python把数据存储在csv文件中
鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...
- python对数据进行分类、文件是csv文件_用Python将处理数据得到的csv文件分类(按顺序)保存...
用Python中的os和numpy库对文件夹及处理数据后得到的文件进行分类保存: import numpy as np import os for m in range(699,0,-35): cur ...
- python自动化读取和写入文件_基于Python的接口自动化实战-基础篇之读写配置文件...
引言 在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值.为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变 ...
- python切割txt文件_用Python实现大文本文件切割的方法
在实际工作中,有些场景下,因为产品既有功能限制,不支持特大文件的直接处理,需要把大文件进行切割处理. 当然可以通过UltraEdit编辑工具,或者从网上下载一些文件切割器之类的.但这些要么手工操作太麻 ...
- python下载网页中的pdf文件_【Python】Python的urllib模块、urllib2模块批量进行网页下载文件...
由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载.正好Python有相关的模块,所以写了个程序来进行PDF文件的下载,顺便熟悉了Python的url ...
- python中csv库_关于python 自带csv库的使用心得 附带操作实例以及excel下乱码的解决...
因为上次帮我们产品处理过一个文件,他想生成能excel处理操作的.但是上次由于时间非常紧张,所以并没有处理好. 正好无聊就来好好研究一下 ,找算法要了几个 csv文件.来好好玩一玩. 全篇使用了pyt ...
- python2打开文件_关于python:何时以二进制模式打开文件(b)?
我注意到在文档中他们总是用'wb'打开一个CSV文件. 为什么'b'? 我知道b代表二进制模式,但是你什么时候使用二进制模式(我猜想CSV文件不是二进制模式). 如果相关我是从arcpy.da.Sea ...
- linux保存python文件_告诉Python将.txt文件保存到Linux上的某个目录 - python
我试图将文件保存在QCTestFiles目录中,但是我的脚本未将文件写入指定的目录中.我的路径文件是否适用于Linux,如果不是,我如何更改代码以在另一个目录中写入和保存文件?我当前的脚本在brper ...
- python数据库操作批量sql执行_利用Python如何批量修改数据库执行Sql文件
利用Python如何批量修改数据库执行Sql文件 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 利用Python如何批量修改数据库执行Sql文件.txt ] (友 ...
- python模块下载1002python模块下载_【Python】Python的urllib模、urllib2模块的网络下载文件...
因为需要从一些下载一个页PDF文件.但是需要下载PDF有数百个文件,这是不可能用人工点击下载.只是Python有相关模块,所以写一个程序PDF文件下载,顺便熟悉Python的urllib模块和ulrl ...
最新文章
- Codeforces Beta Round #95 (Div. 2) 部分解题报告 (dp,组合数,)
- 设计模式之创建型模式
- 【成长之路】【python】python基础5-模块
- php动态修改配置文件
- 04号团队-团队任务3:每日立会(2018-11-27)
- 65.shell特殊符号与和cut,sort,wc,uniq,tee,tr,split命令
- Latex应用和资源
- Delete Edges
- html盒子全部蓝色,彻底弄懂CSS盒子模式之五
- iPhone 6s不死!支持升级iOS 14,还能再战两年
- list 操作 java_Java,List操作技巧
- 库表操作 - 存储引擎
- 理解线程/多线程处理数组(MultiThreaded dealing with arrays)
- 后台json返回给ajax,Ajax 如何 得到后台返回 的json数据,正确的格式应该如何去写?...
- android真机调试
- 扩大人类对车辆的控制 新种双轨制自驾车出现
- 致远SPM之CAP数据分析解决方案
- flask-uploads文件上传
- asp.net 各种小窍门
- 学习率和数据集规模_数据集和数据
热门文章
- 数字图像处理基础与应用 第五章
- derby mysql 同步_[Derby]数据库操作说明
- bootstrap外不引用连接_网络编程Netty IoT百万长连接优化,万字长文精讲
- 腾讯移动分析+html5,FAQ · 腾讯移动分析 文档
- Win11系统设置绿色护眼模式的方法
- 新萝卜家园windows11 64位官网正版系统v2021.07
- mysql 定期备份策略,MySQL--3--mysqldump备份策略
- Java包装类中的equals方法
- spring boot配置dubbo(XML)
- MySQL + MyBatis 批量插入时存在则忽略或更新记录