当前位置: 首页 > news >正文

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();

http://www.mrgr.cn/news/81911.html

相关文章:

  • 未授权访问漏洞
  • python opencv的orb特征检测(Oriented FAST and Rotated BRIEF)
  • 使用爬虫技术获取网页中的半结构化数据
  • 19704 团建
  • 交换机关于环路、接口绑定、链路聚合的相关知识
  • Wndows bat将一个目录下所有子文件夹的路径导出到txt文本
  • 19.springcloud_openfeign之案例
  • Snowflake基础知识
  • WPF 绘制过顶点的圆滑曲线 (样条,贝塞尔)
  • Qt之QtConcurrent
  • 【服务器项目部署】⭐️将本地项目部署到服务器!
  • 数仓建模:如何进行实体建模?
  • 大模型在自动驾驶领域的应用和存在的问题
  • MySQL数据库的备份与恢复你会了吗?
  • ubuntu2204 gpu 没接显示器,如何连接vnc
  • 3.2、SDH帧结构
  • Rust : tokio中select!
  • 【机器学习】【朴素贝叶斯分类器】从理论到实践:朴素贝叶斯分类器在垃圾短信过滤中的应用
  • Elasticsearch名词解释
  • C++ 设计模式:中介者模式(Mediator Pattern)
  • gesp(二级)(16)洛谷:B4037:[GESP202409 二级] 小杨的 N 字矩阵
  • 自定义 Element Plus 树状表格图标
  • ArcGIS Pro地形图四至角图经纬度标注与格网标注
  • html+css+js网页设计 美食 家美食1个页面
  • 【Rust自学】8.3. String类型 Pt.1:字符串的创建、更新与拼接
  • 被裁20240927 --- 嵌入式硬件开发 STM32篇