python学习-44 程序的解耦 (不是特别懂的,回头在复习)
2024-09-01 13:23:50
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)
最新文章
- 【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板
- scrapy 保存到 sqlite3
- JS验证金额
- Bootstrap分页插件:bootstrap-paginator
- Outlook 无法更新全球通讯簿,错误 0×80190194
- Matlab中find函数的使用
- Scrum&;Kanban在移动开发团队的实践 (一)
- 关于RadAsm中GetEnvironmentStrings的BUG。
- UIImage加载图片的区别和渲染模式
- javax.ejb.SessionBean
- Sublime Text 中文乱码解决方案
- lua metatable(元表)
- MySQL 相关记录
- pyspider 笔记
- CodeForces165E 位运算 贪心 + 状压dp
- 廖雪峰Java7处理日期和时间-2Data和Calendar-1Date
- 通过javascript添加一行
- PL/SQL12中文版
- RDD之四:Value型Transformation算子
- AngularJS 指令的 Scope (作用域)