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_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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值