python初学练习之基于文件操作的停车管理系统
由于后续的工作中可能会用到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_starttotal_h = time1.total_seconds()/3600total_m = (time1.total_seconds()%3600)/60total_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();