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. android开发解决Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: c.....

    网上常见的方法我都试过,都没能解决,偶然看到的一个方法解决了,在这了记录一下. 在App目录下的build.gradle的android{ ...  ....}中添加如下代码,即可解决.(xx.xx. ...

  2. day-09内存管理

    内存管理 引用计数:垃圾回收机制的依据 # 1.变量的值被引用,该值的引用计数 +1# 2.变量的值被解绑,该值的引用计数 -1# 3.引用计数为0时就会被垃圾回收机制回收​ 引用计数会出现循环引用问 ...

  3. Docker切换国内镜像

    本人是Ubuntu系统 Ubuntu 18.04 安装 Docker-ce 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list / ...

  4. docker mysql8 注意

    1. mysql8 出了有段时间了,但公司项目的django还不支持mysql8的默认加密方式. 连接时报错 Error : The server requested authentication m ...

  5. Https网络安全架构设计

    一.对称加密 对称密钥加密(Symmetric-key algorithm)又称对称加密.私钥加密.共享密钥加密,是密码学中的一类加密算法.这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地 ...

  6. mysql异常 : The driver has not received any packets from the server.

    异常: 结论:域名写错了或报这个异常

  7. Unity 中实现粒子系统的 LOD

    模型的 LOD 比较简单,直接使用 Unity 提供的组件 LODGroup 挂到模型物体上,然后分别指定不同 LOD 级别的 Renderer 即可. LODGroup 并不是用距离来控制 LOD, ...

  8. final link failed: Nonrepresentable section on output

    编译live555的时候遇到了这个问题,前面的编译没有问题,是在链接的时候出现的,在网上搜索说是缺少 libstdc++ 库.于是,安装之 #sudo apt-get install  libstdc ...

  9. reshape的两个函数melt和dcast

    reshape Reshape包主要是用来做数据变形的.其中主要的有两个函数melt和dcast1.其中melt主要用于宽变长,而dcast1主要用于长变宽.melt和dcast1是reshape2包 ...

  10. pip install pytest on Mac (EI Capitan 10.11.6)

    升级了Mac 系统后发现用pip安装pytest出现下面链接中的问题,解决方法是在install时候加上--user选项: 1. 切到home directory: cd - 2. install p ...