import os

def file_handler(backend_data,res=None,type='fetch'):                  # 查询功能
if type == 'fetch':
with open('test_new.txt','r') as read_f:
ret = []
tag = False
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
if type == 'change': # 修改功能
with open('test_new.txt', 'r') as read_f, \
open('test_new.txt_new', 'w') as write_f:
tag = False
has_write = 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_write:
for record in res:
write_f.write(record)
has_write = True os.rename('test_new.txt', 'test_new.txt.bak')
os.rename('test_new.txt_new', 'test_new.txt')
os.remove('test_new.txt.bak') def fetch(data):
print('您输入的信息是:',data)
backend_data= 'backend %s' % data
return file_handler(backend_data) def change(data):
print('开始修改功能')
print('用户输入的信息是:',data)
backend=data[0]['backend']
backend_data='backend %s' %backend
old_server_record ='%s server %s %s\n'%(*9,data[0]['record']['server'])
new_server_record = '%s server %s %s\n' % (*9, data[1]['record']['server'])
print('您想要修改的记录:',old_server_record)
res=fetch(backend)
print(res)
if not res or old_server_record not in res:
return '您要修改的信息不存在'
else:
index = res.index(old_server_record)
res[index]=new_server_record res.insert(0,'%s\n' %backend_data)
file_handler(backend_data,res=res,type='change') if __name__== '__main__':
msg='''
1:查询
2:修改
5:退出
'''
msg_dic={
'':fetch,
'':change
}
while True:
print(msg)
choose = input('请输入您要的选项:').strip()
if not choose: continue
if choose == '':break data = input('请输入您的信息:').strip()
if choose != '':
data = eval(data) res = msg_dic[choose](data) # 查询到的结果放到一个列表里输出
print('最终的结果:',res)

python学习-44 程序的解耦 (不是特别懂的,回头在复习)的更多相关文章

  1. Python学习-购物车程序

    程序:购物车程序 需求: 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 ...

  2. Python学习--课本程序练习(周更)

    1.绘制正方形螺旋线 import turtle turtle.setup(600,300,200,200) turtle.pensize(1) turtle.color('green') i=0 w ...

  3. 【Python学习】程序运行完发送邮件提醒

    有时候我们运行一个需要跑很长时间的程序,不管是在云主机还是本地主机上运行,我们都不可能一直守在电脑面前等.所以想到使用邮件来通知提醒. 示例代码如下 # -*- coding: utf-8 -*- # ...

  4. Python学习——购物车程序

    问题需求: 1.启动程序,让用户输入工资,然后打印商品列表 2.允许用户根据商品编号购买商品 3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 4.可随时退出,退出时,打印已购买的商品和余 ...

  5. Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...

  6. python学习笔记-python程序运行

    小白初学python,写下自己的一些想法.大神请忽略. 安装python编辑器,并配置环境(见http://www.cnblogs.com/lynn-li/p/5885001.html中 python ...

  7. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …

    [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...

  8. 20180821 Python学习笔记:如何获取当前程序路径

    20180821 Python学习笔记:如何获取当前程序路径 启动的脚本的路径为:D:\WORK\gitbase\ShenzhenHouseInfoCrawler\main.py 当前脚本的路径为:D ...

  9. 【Python】Java程序员学习Python(三)— 基础入门

    一闪一闪亮晶晶,满天都是小星星,挂在天上放光明,好像许多小眼睛.不要问我为什么喜欢这首歌,我不会告诉你是因为有人用口琴吹给我听. 一.Python学习文档与资料 一般来说文档的资料总是最权威,最全面的 ...

随机推荐

  1. JavaScript中,返回上一个页面时,如何保证上一个页面的不刷新?

    history.back()和history.go(-1)都可以实现返回上一页并不刷新.History 对象包含用户(在浏览器窗口中)访问过的 URL. history.back() 等同于在浏览器点 ...

  2. fixedFluxPressure边界条件【转载】

    转载自:http://blog.sina.com.cn/s/blog_e256415d0102vikh.html fixedFluxPressure是OpenFOAM较新的一个边界条件,表示边界处压力 ...

  3. Go by Example-Switch分支结构

    上一节提到了Go语言中的if/else结构,但是条件过多的时候就不适合用if语句了,这个时候我们就可以使用switch语句了. 基本特性 switch 是一个条件语句,用于将一个表达式的求值结果与可能 ...

  4. 2018-2019-2 网络对抗技术 20165231 Exp 8 Web基础

    实验内容 (1).Web前端HTML(0.5分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(0 ...

  5. 代码检查p626

    1 编译运行p626 图10-3代码,提交编译运行的截图 2 STDOUT_FILENO的值是多少?提交在Ubuntu中查找这个值的命令截图

  6. [mcI18N]mcI18N项目简介

    mcI18N项目全称为我的世界模组本地化工具链项目(Minecraft Mod Localization Toolchain Project),是一个为我的世界模组本地化过程提供工具/平台支持的项目. ...

  7. 【Java】浅谈Java内部类(转载)

    说得挺细的,不是泛泛而谈.https://blog.csdn.net/weixin_42762133/article/details/82890555

  8. Linux CentOS 7 常用命令集合

  9. CV1——学习笔记

    计算机视觉(computer vision)是从图像和视频中提出数值或符号信息的计算系统,更形象一点说,计算机视觉是让计算机具备像人类一样的眼睛,看到图像,并理解图像. 计算机视觉三大应用:识别.检测 ...

  10. ISO/IEC 9899:2011 条款5——5.2.2 字符显示语义

    5.2.2 字符显示语义 1.活动位置是在一个显示设备上的位置,由fputc函数所输出的下一个字符会出现在那个位置上.写一个打印字符(由isprint函数)到显示设备的意图是为了在活动位置上显示那字符 ...