day4作业之信息表
实在是太low了,终究是自己写的,记录下
#!/usr/bin/env python
# coding=utf8
import os, re
#这里我把查询这块分为3个函数了,纠结了很久是放一起还是分开,最后还是分开了,容易写一些
def search_age_above_22(): #定义年纪大于22岁函数
new = [] # 把读取到的文件写入至此列表
temp = [] # 记录查询年龄大于22岁的总数列表 with open("Information.txt", "r", encoding="utf8") as file:
for line in file.readlines():
new.append(line.strip().split(","))
for each_line in new:
if each_line[2] > "22":
temp.append(each_line[2])
print(each_line[1:3])
print("查到年龄大于22岁的总数为:%s" % len(temp)) def search_depot_of_IT(): #定义部门为IT的函数
new = [] # 把读取到的文件写入至此列表
temp = [] # 记录查询部门为IT的总数列表
with open("Information.txt", "r", encoding="utf8") as file:
for line in file.readlines():
new.append(line.strip().split(","))
for each_line in new:
if each_line[4] == "IT":
temp.append(each_line[4])
print(str(each_line[::]))
print("查到部门为IT的总数为:%s" % len(temp)) def search_date_of_2013(): #定义开始工作日期为2013年的函数
new = [] # 把读取到的文件写入至此列表
temp = [] # 记录查询开始工作日期为2013年的总数列表
with open("Information.txt", "r", encoding="utf8") as file:
for line in file.readlines():
new.append(line.strip().split(","))
for each_line in new:
if re.search("2013", each_line[-1]):
temp.append(each_line[5])
print(each_line[::])
print("查到工作时间在2013年名单总数为:%s" % len(temp)) def add(): #定义增加函数
new = [] # 把读取到的文件写入至此列表
temp = [] #此列表为了自增而建,代码写的很low
user_input = str(input("请输入类似于[吴东杭,21,17710890829,运维,1995-08-29]的一串东西:"))
with open("Information.txt", "r", encoding="utf8") as read_file, open("NewInformation.txt", "w+",
encoding="utf8")as write_file:
for line in read_file:
new.append(line.strip().split(","))
for new_line in new:
# i.append(j)
temp.append(new_line)
# print(i[-1][0])
Added_Data = "%d,%s" % (int(temp[-1][0]) + 1, user_input)
temp.append(Added_Data.split(','))
for each_line in temp:
write_file.write(','.join(each_line).strip("")) # 通过内置方法join把列表转换为字符串
write_file.write("\n") # 写入这行,可使文件换行
os.rename("Information.txt", "Information.bak")
os.rename("NewInformation.txt", "Information.txt")
os.remove("Information.bak") def delete(): #定义删除函数
ReadFile = []
User_Choice = int(input("请输入staff_id号:"))
with open("Information.txt", "r", encoding="utf8") as read_file, open("NewInformation.txt", "w+",
encoding="utf8") as write_file:
for line in read_file:
ReadFile.append(line.strip().split(","))
for each_line in ReadFile:
if User_Choice == int(each_line[0]):
ReadFile.remove(ReadFile[User_Choice - 1])
for new_line in ReadFile:
write_file.write(','.join(new_line).strip("")) # 通过内置方法join把列表转换为字符串
write_file.write("\n") # 写入这行,可使文件换行
os.rename("Information.txt", "Information.bak")
os.rename("NewInformation.txt", "Information.txt")
os.remove("Information.bak") def modify(): #定义更改函数
if not os.path.exists("Information.txt"):
exit(-1)
User_Input = str(input("请输入:"))
with open("Information.txt", "r", encoding="utf8") as read_file, open("NewInformation.txt", "w+",
encoding="utf8") as write_file:
for line in read_file.readlines():
write_file.write(line.replace("IT", User_Input))
os.rename("Information.txt", "Information.bak")
os.rename("NewInformation.txt", "Information.txt")
os.remove("Information.bak") if __name__ == '__main__':
msg = '''
1:查询年龄大于22岁学生信息
2:查询部门为IT学生信息
3:查询工作开始时间在2013年学生信息
4:添加
5:删除
6:修改
7:退出
'''
menu_dic = { '1': search_age_above_22,
'2': search_depot_of_IT,
'3': search_date_of_2013,
'4': add,
'5': delete,
'6': modify,
'7': exit,
}
while True:
print(msg)
choice = input("操作>>: ").strip()
if len(choice) == 0 or choice not in menu_dic or choice.isalpha():
print("温馨提示:请输入1-7之间的数字")
continue
if choice == '7': break
menu_dic[choice]()
day4作业之信息表的更多相关文章
- day12 python作业:员工信息表
作业要求: 周末大作业:实现员工信息表文件存储格式如下:id,name,age,phone,job1,Alex,22,13651054608,IT2,Egon,23,13304320533,Tearc ...
- python作业员工信息表程序(第四周)
作业需求: 1. 员工信息表程序,实现增删改查操作: 2. 可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where age > 22 ...
- python基础之员工信息表作业
周末大礼包 文件存储格式如下: id, name, age, phone, job 1, Alex, 22, 13651054608, IT 2, Egon, 23, 13304320533, Tea ...
- 老男孩Day4作业:员工信息查询系统
1.作业需求: (1).工信息表程序,实现增删改查操作: (2).可进行模糊查询,语法至少支持下面3种: select name,age from staff_table where ...
- s9.16作业,员工信息表
转载https://blog.csdn.net/qq_35883464/article/details/83151464 实现员工信息表文件存储格式如下:id,name,age,phone,job1, ...
- 2014-11-9------- 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- SysErrorMessage 函数和系统错误信息表
在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessa ...
- Delphi SysErrorMessage 函数和系统错误信息表
在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...
- delphi SysErrorMessage 函数和系统错误信息表 good
在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...
随机推荐
- [教程]Oracle 11g Express 安装和使用教程
使用工具的第一步就是安装工具,配置环境!下面就Oracle 11g Express的安装和简单实用做一简介. 一.下载安装过程 去oracle的官网下载Oracle 11g express,大概300 ...
- AD域的安装
AD域的安装 初始化设置,改计算机名字dcserver,改静态ip,改dns指向自己. dcpromo,执行后自动装了dns. 装完后检查 1,本地用户没了 2,dns指向自己 3,dns记录是否 ...
- tftp从linux下载文件
1,背景: 当我们ssh到一台linux上时候,从linux上下载一些文件,方案如下: 1.1通过sftp:通过win7 ftp客户端连接到linux去下载文件. 1.2通过tftp 2,问题 有些l ...
- JS原型-语法甘露
初看原型 JS的所有函数都有一个prototype属性,这个prototype属性本身又是一个object类型的对象. prototype提供了一群同类对象共享属性和方法的机制. 将一个基类的实例作为 ...
- ZooKeeper学习第二期--ZooKeeper安装配置
一.Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式. ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境:■ 伪集群模式:就是在一台物 ...
- C语言操作符优先级
C语言操作符优先级 优先级 运算符 含 义 要求运算 对象的个数 结合方向 1 () [] -> . 圆括号 下标运算符 指向结构体成员运算符 结构体成员运算符 自左至右 2 ! 逻辑非运 ...
- 【转】其实你不知道MultiDex到底有多坑
遭遇MultiDex 愉快地写着Android代码的总悟君往工程里引入了一个默默无闻的jar然后Run了一下, 经过漫长的等待AndroidStudio构建失败了. 于是带着疑惑查看错误信息. UNE ...
- iOS开发的设计模式
ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现. 优势:解耦合 敏捷 ...
- Android Eclipse真机调试 过滤器filter没有显示
问题: 用真机连上电脑做安卓调试是,工程对应的过滤器会不定期的显示或者不显示.wo the fuck. 解决办法: 为这个工程手动建一个filter
- storm如何保证at least once语义?
背景 前期收到的问题: 1.在Topology中我们可以指定spout.bolt的并行度,在提交Topology时Storm如何将spout.bolt自动发布到每个服务器并且控制服务的CPU.磁盘等资 ...