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. 关于WebService

    转自于:https://www.cnblogs.com/xdp-gacl/p/4048937.html 一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍 ...

  2. 如何查看电脑已连接的WiFi密码

    控制面板->网络和Internet->网络和共享中心 点击已连接的WLAN网络,查看“WLAN状态”->无线属性->安全 在显示字符下可以看到已连接wifi的密码

  3. [随笔][Java][修改pom仓库库为阿里云]

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  4. *&p理解

    要明白这个需明白两个基础: 运算符*优先级高于&, 两个运算符都是从右向左结合运算 所以,*&a 的意思就是先运算 *,得到 指针,再通过 &,获取指针的引用 如果不理解,继续 ...

  5. golang操作memcached 转自https://blog.csdn.net/weixin_37696997/article/details/78760397

    go使用memcached需要第三方的驱动库,这里有一个库是memcached作者亲自实现的,代码质量效率肯定会有保障 1:安装 go get github.com/bradfitz/gomemcac ...

  6. Azure CosmosDB (6) 冲突类型和解决策略

    <Windows Azure Platform 系列文章目录> 当我们为CosmosDB配置多个Azure Region写入,就需要考虑冲突类型和解决策略. 对于配置了多个写入区域的 Az ...

  7. Spark环境准备

    Ubuntu: 1.下载spark-2.2.1-bin-hadoop2.7.tgz,解压即可使用. 2.下载jdk-8u151-linux-x64.tar.gz,解压. 3.执行spark-2.2.1 ...

  8. HTML 理解标签 - meta

    meta标签 , 常用的有以下几个属性: 1. name : 比较常见的一些属性 author: 就是这个文档的作者名称,可以用自由的格式去定义 description: 包括一个关于页面内容的缩略而 ...

  9. symfony 踩坑之旅 视频实操从第九章开始

    1.annotation定义路由 @Route("/**",defaults={"name":"world"},requirements={ ...

  10. 如何成功打造一款中台(PaaS)产品

    现如今,很多互联网公司在向“大中台,小前台”方向靠拢,通过打造高度可用.高度可定制的中台,来支撑前台业务的快速发展.个性化功能定制.但在构建中台产品(即所谓公司级平台)的时候,如何能成功让一款产品从0 ...