python岗位简介表_Python员工信息表作业

'''python 员工信息表操作,刚学习,没有思路,参照网上某位朋友的写的'''

importsysimportosdefselect1():'''查看文件的函数

:return:'''with open('e:\\员工信息.txt',mode='r',encoding='utf-8') as f:

line=f.readlines()for i inline:print(i.strip())defselect():'''查询函数

:return:'''msg= '''请输入或者复制查询命令,如:

1.select name,age from staff_table where age > 22

2.select * from staff_table where dept = "IT"

3.select * from staff_table where enroll_date like "2013"'''

print(msg)

user_choice_input= input('>>>:') #让用户输入上面的命令

user_choice_input1 = user_choice_input.split(' ') #用空格分割用户输入的命令

if user_choice_input == 'select name,age from staff_table where age > %s' % user_choice_input1[7]:

with open('e:\\员工信息.txt',mode='r+',encoding='utf-8') as f:

list_age= [] #定义一个列表。将符合查询条件的员工信息添加进去

for line inf:

lis_age= line.strip().split(',')if lis_age[2] > user_choice_input1[7]:

list_age.append(lis_age)for list_age1 in list_age: #将列表转换成字符串

print(','.join(list_age1))print('符合条件的人数有 %s 人' %len(list_age))elif user_choice_input == 'select * from staff_table where dept = %s' % user_choice_input1[7]:

with open('e:\\员工信息.txt', mode='r+', encoding='utf-8') as f:

list_dept=[]for line inf:

lis_dept= line.strip().split(',')if lis_dept[4] == eval(user_choice_input1[7]):

list_dept.append(lis_dept)for list_dept1 inlist_dept:print(','.join(list_dept1))print('符合条件的人数有 %s 人' %len(list_dept))elif user_choice_input == 'select * from staff_table where enroll_date like %s' % user_choice_input1[7]:

with open('e:\\员工信息.txt',mode='r',encoding='utf-8') as f:

list_data=[]for line inf:

lis_data= line.strip().split(',')

lis_year= lis_data[5].strip().split('-')if lis_year[0] == eval(user_choice_input1[7]):

list_data.append(lis_data)for list_data1 inlist_data:print(','.join(list_data1))print('符合条件的人数有 %s 人' %len(list_data))defalter():'''添加命令

:return:'''msg= '''如果要添加一项员工信息,按照如下格式填写,内容与内容之间以逗号隔开,如:

Jack Wang,30,43304320533,INS,2015-05-03'''

print(msg)

user_choice_input= input('请输入要添加的内容>>>:')

user_choice_input1= user_choice_input.split(',')

with open('e:\\员工信息.txt',mode='r+',encoding='utf-8') as f:

list_id=[]for line in f: #将现在员工信息的ID号保存到一个列表中 这个ID是使用的员工信息的 10位数字来进行判断的

if line == '\n':continue #这个地方是避免读取空行,如果读取空行,下面的添加代码会报错

lis_msg = line.strip().split(',')

list_id.append(lis_msg[3])if user_choice_input1[2] inlist_id:print('已经有了这个ID了')

main()else:#设置员工信息的序号

index = str(len(list_id) + 1) #list_id 列表的长度其实就是现有员工信息的个数

#将需要插入到用户输入的最前面

user_choice_input1.insert(0,index) #在用户输入的信息前面添加上序号

if len(list_id) ==0:

f.write(','.join(user_choice_input1)) #如果里面没有内容,则直接写入,不换行

else:

f.write('\n')

f.write(','.join(user_choice_input1)) #如果里面有内容,先进行换行,再进行写入

defdelete():'''删除函数

:return:'''

print('请输入要删除命令:输入用户的序号,既可以从列表中删除用户信息')

msg= '''1.按 1 删除,直接删除用户的序号即可

2.按 2 或者 q 退出

3.按下其他任意键,返回上一层'''

print(msg)

user_choice_input= input('请输入命令:>>>')if user_choice_input == '1':print('目前用户信息为:')

select1()#输入现有用户的信息

print('\n')

user_choice_input1= input('请输入需要删除的ID:>>>')

with open('e:\\员工信息.txt',mode='r+',encoding='utf-8') as f ,open('e:\\员工信息.bak',mode='w+',encoding='utf-8') as f1:

index= 1 #删除的时候用来重新编号

for line inf:

lis_msg= line.strip().split(',')if user_choice_input1.strip() !=lis_msg[0]:

lis_msg[0]=str(index)

f1.write(','.join(lis_msg))

f1.write('\n')

index+= 1

else:continuef.close()

f1.close()

os.remove('e:\\员工信息.txt')

os.rename('e:\\员工信息.bak','e:\\员工信息.txt')

select1()elif user_choice_input == '2' or user_choice_input.lower() == 'q':

sys.exit()return

defmain():'''主程序

:return:'''

print('员工信息表操作作业练习:')

msg= '''请输入要进行的操作

1.查询

2.添加

3.删除

4.退出'''

whileTrue:print(msg)

user_choice_input= input('请输入选项:>>>')if user_choice_input.strip() == '1':

select()elif user_choice_input.strip() == '2':

alter()elif user_choice_input.strip() == '3':

delete()elif user_choice_input.strip().lower() == '4' or 'q':

sys.exit()else:print('输入有误!请重新输入')

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值