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)

最新文章

  1. 【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板
  2. scrapy 保存到 sqlite3
  3. JS验证金额
  4. Bootstrap分页插件:bootstrap-paginator
  5. Outlook 无法更新全球通讯簿,错误 0×80190194
  6. Matlab中find函数的使用
  7. Scrum&Kanban在移动开发团队的实践 (一)
  8. 关于RadAsm中GetEnvironmentStrings的BUG。
  9. UIImage加载图片的区别和渲染模式
  10. javax.ejb.SessionBean
  11. Sublime Text 中文乱码解决方案
  12. lua metatable(元表)
  13. MySQL 相关记录
  14. pyspider 笔记
  15. CodeForces165E 位运算 贪心 + 状压dp
  16. 廖雪峰Java7处理日期和时间-2Data和Calendar-1Date
  17. 通过javascript添加一行
  18. PL/SQL12中文版
  19. RDD之四:Value型Transformation算子
  20. AngularJS 指令的 Scope (作用域)

热门文章

  1. 结构体与C++sort()函数的用法
  2. 修改input输入框的样式
  3. 线程sleep方法的demo详解
  4. Apache Flink - 内存管理
  5. jQuery之编写插件
  6. win10 sedlauncher.exe占用cpu处理
  7. npm package.json配置整理
  8. 通过phpMyAdmin优化mysql 数据库可能存在的问题
  9. CentOS7系统下GitLab的安装、汉化、修改默认端口、开启发送邮箱
  10. vue+Typescript初级入门