仓库中有若干不同产品
进入系统后,系统读取历史文件,并返回所有产品的当前库存,同时显示菜单
选择“出库”或者“入库”进入到出入库系统,输入产品、数量进行出入库操作,系统显示该产品库存
选择“退出系统”退出
产品所有的出入库记录均存于一个文本文件中
文本文档记录每一次的存取操作和产品的当前库存
文档记录的属性包括:产品名、出库或者入库、数量、库存量
import re
def read_stock():
f = open('stock_info.txt',encoding = 'utf-8')
current_stock = {}
while True:
lines = f.readlines(100)
if not lines:
break
for i in lines:
#桌子,入库,2,2
cols = re.split(',',i)
current_stock[cols[0]]=float(cols[-1])
f.close()
return current_stock
def update_stock(p, op, amount, updated_stock):
f = open('stock_info.txt', 'a', encoding='utf-8')
f.write('{},{},{},{}\n'.format(p, op, amount, updated_stock))
f.close()
def stock_in():
product = input('输入入库产品:')
amount = float(input('输入入库数量:'))
current_stock = read_stock()
if product in current_stock.keys():
current_stock[product] = current_stock[product] + amount
else:
current_stock[product] = amount
print('入库成功!{}库存更新为{}'.format(product, current_stock[product]))
update_stock(product, '入库', amount, current_stock[product])
def stock_out():
product = input('输入出库产品:')
amount = float(input('输入出库数量:'))
current_stock = read_stock()
if product in current_stock.keys():
if current_stock[product] >= amount:
current_stock[product] = current_stock[product] - amount
update_stock(product, '出库', amount, current_stock[product])
print('出库成功!{}库存更新为{}'.format(product, current_stock[product]))
else:
print('库存不足!')
else:
print('没有该产品!')
stocks = read_stock()
print('当前库存为:')
for k,v in stocks.items():
print('{}\t{}'.format(k,v))
while True:
op_input = input('请选择操作:1、出库;2、入库;3、退出系统:')
if op_input == '1':
#出库
stock_out()
elif op_input == '2':
#入库
stock_in()
elif op_input == '3':
#退出系统
print('谢谢使用,现在退出系统。')
break
else:
print('输入有误!')