import os

def fetch(data):
# print('\033[1;43m这是查询功能\033[0m')
# print('\033[1;43m用户数据是\033[0m',data)
backend_data='backend %s'%data
with open('website.conf','r',encoding='utf-8') as read_f:
tag = False
ret = []
for read_line in read_f:
if read_line.strip()==backend_data:
tag=True
continue
if tag and read_line.startswith('backend'):
break
if tag:
print(read_line,end='')
ret.append(read_line)
return ret def add():
pass def change(data):
print('这是修改功能')
backend= data[0]['backend']
backend_data='backend %s'%backend
old_sever_record='%s sever %s weight %s\n'%(' '*8,data[0]['record']['sever'],
data[0]['record']['weight'])
new_sever_record='%s sever %s weight %s\n'%(' '*8,data[1]['record']['sever'],
data[1]['record']['weight']) res=fetch(backend)
print('change函数',res) # if not res or old_sever_record not in res:
# return '你要修改的记录不存在'
# else:
index=res.index(old_sever_record)
res[index]=new_sever_record
res.insert(0,'%s\n'%backend_data)
with open('website.conf','r') as read_f,\
open('website_new.conf','w') as write_f:
tag=False
has_wirte=False
for read_line in read_f:
if read_line.strip()==backend_data:
tag=True
continue
if tag and read_line.startswith('backend'):
tag=False
if not tag:
write_f.write(read_line)
else:
if not has_wirte:
for record in res:
write_f.write(record) def delete():
pass if __name__=='__main__':
msg='''
1.查询
2.添加
3.修改
4.删除
5.退出
'''
msg_dic={
'':fetch,
'':add,
'':change,
'':delete
} while True:
print(msg)
choice=input('请输入你的选项:').strip()
if not choice:continue
if choice==5:break
data=input('请输入你的数据:'.strip())
if choice!='':
data=eval(data)
res=msg_dic[choice](data)
print(res) # [{'backend':'www.newboy2.org','record':{'sever':'1.1.1.8','weight':80}},{'backend':'www.newboy2.org','record':{'sever':'1.0.0.8','weight':100}}]

python练习题_04的更多相关文章

  1. Python练习题 028:求3*3矩阵对角线数字之和

    [Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...

  2. Python练习题 027:对10个数字进行排序

    [Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...

  3. Python练习题 026:求100以内的素数

    [Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...

  4. Python练习题 025:判断回文数

    [Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...

  5. Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  6. Python练习题 004:判断某日期是该年的第几天

    [Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...

  7. Python练习题-1.使用匿名函数对1~1000求和,代码力求简洁。

    Python 练习 标签(空格分隔): Python Python练习题 Python知识点 一.使用匿名函数对1~1000求和,代码力求简洁. 答案: In [1]: from functools ...

  8. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  9. python 基础 2.8 python练习题

    python 练习题:   #/usr/bin/python #coding=utf-8 #@Time   :2017/10/26 9:38 #@Auther :liuzhenchuan #@File ...

随机推荐

  1. Mac使用

    安装you-get: 用到mac下安装软件的工具:brew 百度搜brew到官网首页照说明在终端执行一段指令 安装方法:命令行输入 /usr/bin/ruby -e "$(curl -fsS ...

  2. 现在企业开发时,Java所用到的主流框架有哪些?

    虽然Java一直被唱衰,但是直到现在Java软件开发也坚持霸主地位不动摇.毫无疑问,Java是目前最热门的编程语言之一.随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到 ...

  3. java中构造代码块、方法调用顺序问题

    1. 继承的概念 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 2. 继承中的初始化顺序 从类的结构上而言,其 ...

  4. flutter 容器

    Flutter 有着丰富的布局控件库 . Flutter 中的布局整体分为 Single-child layout widget (单子布局部件) Multi-child layout widget ...

  5. Kafka入门 --安装和简单实用

    一.安装Zookeeper 参考: Zookeeper的下载.安装和启动 Zookeeper 集群搭建--单机伪分布式集群 二.下载Kafka 进入http://kafka.apache.org/do ...

  6. Firebird Embedded 部署的一个坑

    今天把旧程序升级了,把DBX组件换成了FireDac组件,在虚拟机里测试的时候,一直报上图中的错误,但是在主机上运行无问题,之前用户使用也一直没报过这个错. 折腾了又折腾,还是搞不定,感觉脑袋有点大了 ...

  7. 基于MATLAB搭建的DDS模型

    基于MATLAB搭建的DDS模型 说明: 累加器输出ufix_16_6数据,通过cast切除小数部分,在累加的过程中,带小数进行运算最后对结果进行处理,这样提高了计算精度. 关于ROM的使用: 直接设 ...

  8. MySQL中InnoDB锁不住表的原因

    MySQL中InnoDB锁不住表是因为如下两个参数的设置: mysql> show variables like '%timeout%'; +-------------------------- ...

  9. 迅速的说清楚rpc原理

    第一个问题是服务提供者进程如果被kill -9暴力杀死,不能主动调用srem命令怎么办? 这个时候服务列表中多了一个黑地址指向了不存在的服务而消费者完全不知道,这个时候服务中介就成了黑中介了.那该怎么 ...

  10. 廖雪峰Java8JUnit单元测试-2使用JUnit-1使用Before和After

    1. @Before和@After 同一个单元测试内的多个测试方法: 测试前都需要初始化某些对象 测试后可能需要清理资源fileInputStream.close() @Test public voi ...