老男孩python自动化运维作业1
- #!/usr/bin/env pthon
- #字典操作三级菜单 “b”返回上一级菜单,“q”退出。
- menu={"BJ":{"cp":{1:1,2:2,3:3},
- "ft":{1:4,2:5,3:6}},
- "SH":{"lz":{1:1,2:2,3:3}
- },
- "HK":{"tz":{1:1,2:2,3:3},
- "fs":{1:4,2:5,3:6}}}
- def one_menu():
- for i in range(0,len(menu.keys())):
- print(str(i+1) +"."+ menu.keys()[i])
- i+=1
- one_menu()
- def tow_menu(city):
- menu_list=menu.get(city).keys()
- for i in range(0,len(menu_list)):
- print (str(i+1) + "." + menu_list[i])
- i+=1
- def three_menu(city,area):
- area_menu=menu.get(city).get(area)
- for i in range(0,len(area_menu)):
- print(area_menu.items()[i])
- chose_num="b"
- while chose_num !="q":
- chose_num=raw_input("please chose menu:")
- if chose_num =="":
- tow_menu("HK")
- while chose_num !="q":
- chose_num=raw_input("please chose menu:")
- if chose_num=="":
- three_menu("HK","fs")
- elif chose_num=="":
- three_menu("HK","tz")
- elif chose_num=="b":
- tow_menu("HK")
- break
- elif chose_num=="q":
- exit()
- else:
- print("input error!")
- elif chose_num =="":
- tow_menu("SH")
- while chose_num !="q":
- chose_num=raw_input("please chose menu:")
- if chose_num=="":
- three_menu("SH","lz")
- elif chose_num=="b":
- tow_menu("SH")
- break
- elif chose_num=="q":
- exit()
- else:
- print("input error!")
- elif chose_num =="":
- tow_menu("BJ")
- while chose_num !="q":
- chose_num=raw_input("please chose menu:")
- if chose_num=="":
- three_menu("BJ","ft")
- elif chose_num=="":
- three_menu("BJ","cp")
- elif chose_num=="b":
- tow_menu("BJ")
- break
- elif chose_num=="q":
- exit()
- else:
- print("input error!")
- elif chose_num =="b":
- one_menu()
- elif chose_num =="q":
- exit()
- else:
- print("input error!")
#文件操作用户登录,提示用户名不存在 和 密码错误,密码错误超过3次则锁定用户登录。
- #!/usr/bin/env python
- # -*-coding:UTF-8-*-
- 3
4- def login():
- f=open("user",'r') #读取user配置文件。
- cont=f.readlines() #readlines把读取的行当作元素返回一个列表
- f.close()
- allname=[] #初始化一个用户列表
- allpasswd=[]
- for i in range(0,len(cont)-1): #len获取cont列表的元素数量
- onecont=cont[i].split() #循环取一行内容并分割成列表,split()以空格为分隔符分割字符串并返回一个列表。
- onename=onecont[0] #循环取一行中的帐号
- onepasswd=onecont[1] #
- allname.append(onename) #循环把每一行取到的帐号追加到用户列表中
- allpasswd.append(onepasswd)
- lf=open("user.lock",'r')
- lcont=lf.readlines()
- lf.close()
- # print(lcont) #打印用户锁文件内容
- # print(allname)
- # print(allpasswd)
- cont=0
- while cont < 3:
- username=raw_input("login user:").strip()
- passwd=raw_input("password:")
- if username not in allname:
- print("No this accont!")
- elif (username +"\n") in lcont:
- print("your account has been locked!Please contact admin!")
- break
- else:
- rel_passwd_index=allname.index(username) #取该帐号在用户列表中的索引,此时用户列表的索引和密码列表的索引是对应的,因此我们同样>取到了该帐号的密码在密码列表的索引
- rel_passwd=allpasswd[rel_passwd_index] #取该帐号的真实密码
- if passwd==rel_passwd:
- print("Login success!")
- break
- else:
- print("password is error!")
- cont+=1
- if cont >= 3:
- print("Excessive password error,your account has been locked!Please contact admin!")
- nf=open("user.lock",'wb')
- nf.write(username+"\n")
- nf.close()
- login()
老男孩python自动化运维作业1的更多相关文章
- 老男孩python自动化运维作业2
拿到要求真不知道怎么写,不能还要写个商城页面吧: 最后还是用了input()模拟用户操作吧- -!不就操作个字典吗(字典模拟商品数据). python版本: >>>import sy ...
- Day1 老男孩python自动化运维课程学习笔记
2017年1月7日老男孩python自动化运维课程正式开课 第一天学习内容: 上午 1.python语言的基本介绍 python语言是一门解释型的语言,与1989年的圣诞节期间,吉多·范罗苏姆为了在阿 ...
- 老男孩Python自动化运维视频
链接:https://pan.baidu.com/s/1VLXJ0RZr39kpSGthkLkgmA 密码私聊我
- python自动化运维学习第一天--day1
学习python自动化运维第一天自己总结的作业 所使用到知识:json模块,用于数据转化sys.exit 用于中断循环退出程序字符串格式化.format字典.文件打开读写with open(file, ...
- Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|
内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...
- 【目录】Python自动化运维
目录:Python自动化运维笔记 Python自动化运维 - day2 - 数据类型 Python自动化运维 - day3 - 函数part1 Python自动化运维 - day4 - 函数Part2 ...
- python自动化运维篇
1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...
- Python自动化运维的职业发展道路(暂定)
Python职业发展之路 Python自动化运维工程 Python基础 Linux Shell Fabric Ansible Playbook Zabbix Saltstack Puppet Dock ...
- Python自动化运维 技术与最佳实践PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:7bl4 一.内容简介 <python自动化运维:技术与最佳实践>一书在中国运维领域将有"划时代"的重要意义:一方面,这是国内第一本从纵.深和实践角度探 ...
随机推荐
- Linux 文件与目录管理
Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /. 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 在开始本教程前我们需要先知道什么是绝对 ...
- AC 设置DMZ口上网
- python中获取上一个月一号的方法
业务场景: 我们经常会跑一些月级别或者周级别的报表. 周级别的报表还比较好确定,就是七天前的直接用timedelta(days=7)来获取开始日期就可以了; 但是月级别的报表就要麻烦一些,因为time ...
- ReactJS学习笔记(三)
需要注意的问题: 1.组件名称开头字母一定要大写.(PS:原因是 React 的 JSX 里约定分别使用首字母大.小写来区分本地组件的类和 HTML 标签.) 2.this.props.childre ...
- <fmt:formatDate>标签的输出格式:
<fmt:formatDate>标签的输出格式: d 月中的某一天.一位数的日期没有前导零. dd 月中的某一天.一位数的日期有一个前导零. ddd 周中 ...
- Ajax请求数据
后台使用数数组的形式存放数据(以键值对的形式存放).让后再Json转码. Map<String,String> map=new HashMap<String,String>() ...
- Caffe应用篇----文件格式转换
网友文章: 我们手中有的一般都是图片数据,jpg.bmp格式等,但caffe常使用的数据是db格式(leveldb/lmdb),因此首先我们要将自己数据转换成caffe可运行的格式文件.别捉鸡,caf ...
- canvas知识点
看到网上某些特别好看的效果,就突然想看看这个canvas; canvas是html5中的一个标签.所以兼容的是Internet Explorer 9.Firefox.Opera.Chrome 和 Sa ...
- RedHat6.5更新软件源
今天在Red Hat上安装软件时,发现需要依赖软件,然而在用sudo yum指令时,出现了下面的错误: This system is not registered to Red Hat Subscri ...
- 用Linux自带的Logrotate来管理日志
Logrotate是由cron控制,cron在规定的时间执行 " logrotate /etc/logrotate.conf "命令.将对象日志进行转储,删除,压缩等操作... ...