由于后续的工作中可能会用到Python,从菜鸟教程上学习完python基础教程后,突然想到多年以前的大学生涯中老师讲过一周的python,学习完后让我们写一个基于xlsx文件的停车管理系统,于是写下了如下代码。早已忘记多年前的代码是怎样的。那就记录一下现在的代码吧。
#引入需要用到的库
import time;
import openpyxl
import datetime
import os
#打开excel
#====================================
# 判断文件是否存在
file_path = "park_data.xlsx";
#如果存在,则跳过
if os.path.exists(file_path):
pass;
#如果不存在,创建一个文件
else:
#创建一个工作簿
wb = openpyxl.Workbook();
#创建一个表单
wb.create_sheet("park_info");
#保存为一个xlsx格式的文件
wb.save("park_data.xlsx");
#打开工作簿
wb = openpyxl.load_workbook("park_data.xlsx");
#选取表单
sh = wb['park_info'];
#创建一个字典,存放从xlsx文件中读取的数据
car_data = {};
#写入数据
def write_xlsx(data):
for key in data:
sh.append([key,data[key]])
#删除数据
def del_xlsx():
for i in range(1, sh.max_row+1):
sh.delete_rows(1);
#查询xlsx中的数据,并将数据存放在 car_data 字典中
def search_xlsx():
for i in range(1,sh.max_row+1):
key = sh.cell(i,1).value;
value = sh.cell(i,2).value;
car_data[key] = value;
#进场
def park_in():
chepai = str(input("请输入车牌:"));
#获取时间
park_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime());
#将数据追加到表格中
sh.append([chepai,park_time]);
# 保存工作簿
wb.save("park_data.xlsx");
print();
print("=== 欢迎%s停车!,入场时间:%s ==="%(chepai,park_time));
print();
return;
#离场
def park_out():
#将数据读取到字典中
search_xlsx();
while(1):
chepai = str(input("请输入车牌:"));
if(chepai in car_data):
#计算停车时常
time_start = datetime.datetime.fromtimestamp(time.mktime(time.strptime(car_data[chepai],"%Y-%m-%d %H:%M:%S")))
time_stop = datetime.datetime.fromtimestamp(time.time())
time1 = time_stop - time_start
total_h = time1.total_seconds()/3600
total_m = (time1.total_seconds()%3600)/60
total_s = (time1.total_seconds()%3600)%60
#从字典中删除离场的车牌
del car_data[chepai];
#重新写入修改后的数据
del_xlsx();
write_xlsx(car_data);
# 保存工作簿
wb.save("park_data.xlsx");
print();
print("停车时长:%d小时%d分钟%d秒, 祝您一路顺风!"%(total_h,total_m,total_s));
print();
break;
else:
print();
print("输入的车牌有误,请重新输入");
print();
break;
#当前停车数量
def car_num():
rows = sh.max_row;
print("\n当前车辆:%d\n"%(rows));
#查询所有车牌
def search_chepai():
sear_xlsx();
for i in car_data:
print();
print("%s "%(i), end="");
print(car_data[i]);
print();
#退出
def ex():
wb.close();
print("\n欢迎下次光临\n");
while(1):
print(" 欢迎停车")
print("===========================================")
print("1、进场")
print("2、离场")
print("3、查看当前停车数量")
print("4、查看当前所有车牌")
print("0、退出")
choose = int(input("请选择功能:"))
if choose == 1:
#入场
park_in();
elif choose == 2:
#离场
park_out();
elif choose == 3:
car_num();
elif choose == 4:
search_chepai();
elif choose == 0:
ex();
break;
else:
print();
print("输入的选项有误,请重新输入!");
print();