Python实现仓库管理系统


Posted in Python onMay 30, 2022

本文实例为大家分享了Python实现仓库管理系统的具体代码,供大家参考,具体内容如下

注意:在Linux环境运行

代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :store_system.py
# @Time      :2020/3/3 23:10
# @Author    :anqixiang
# @Function  :模拟仓库管理系统
'''
1.商品清单保存在/opt/shop_info.txt文件中
2.可以查看、增加、删除商品和修改商品价格
3.在任何位置输入b返回上级菜单,输入q退出
'''
import os
from subprocess import run

#输出颜色
def cecho(num,content):
    print('\033[%sm%s\033[0m' %(num, content))

#选b返回上一层,选q退出
def choice_action(action):
    while action != "b":
        if action == "q":
            exit(0)
        else:
            break
    return action

#展示商品
def view_shop(file_name):
    commodity = []              #所有商品保存到该列表
    if not os.path.isfile(file_name):
        os.mknod(file_name)
    else:
        with open(file_name, 'r') as file:
            for each in file:
                commodity.append(each.splitlines())
    if len(commodity) == 0:
        cecho(35, "货仓空空如也,请速速添加商品!")
        #打印商品信息
    else:
        print('%-10s%-8s%-12s' % ('序号', '名字', '价格'))
        for index, value in enumerate(commodity):
            alist = value[0].split(":")         #把字符串转成列表,以“:”分割
            print('%-12s%-10s%-8s' % (index + 1, alist[0], alist[1]))
    return commodity

#增加商品,每增加一个就保存到文件
def add_shop(file_name):
    while True:
        add_dict = {}
        shop_name = input(">>>输入商品名:").strip()
        if choice_action(shop_name) == "b":
            break
        shop_price = input(">>>输入商品价格(元):").strip()
        if choice_action(shop_price) == "b":
            break
        elif shop_price.isdigit():
            add_dict[shop_name] = shop_price        #商品名作key,价格作值,存入字典
            for i in add_dict:
                with open(file_name, 'a+')as file:
                    file.write('%s:%s\n' % (i, add_dict[i]))
                    print("\033[92m%s存入成功\033[0m" % shop_name)
                view_shop(file_name)
        else:
            cecho(31, "Invalid Option")

#删除商品
def del_shop(file_name):
    menu_info = "商品清单"
    print(menu_info.center(26,'-'))
    commodity = view_shop(file_name)
    while True:
        del_num = input(">>>商品序号:").strip()
        if choice_action(del_num) == "b":
            break
        elif del_num.isdigit():
            del_num = int(del_num)
            rc = run("sed -i '/%s/d' %s" % (commodity[del_num-1][0], file_name), shell=True)
            if not rc.returncode:
                cecho(92, "删除成功")
            else:
                cecho(31,"删除失败")
            view_shop(file_name)
        else:
            cecho(31, "Invalid Option")

#修改商品价格
def update_price(file_name):
    menu_info = "商品清单"
    print(menu_info.center(26,'-'))
    commodity = view_shop(file_name)
    while True:
        update_num = input(">>>商品序号:").strip()
        if choice_action(update_num) == "b":
            break
        elif update_num.isdigit():
            update_num = int(update_num)
        else:
            cecho(31, "Invalid Option")

        new_price = input(">>>新的价格(元):").strip()
        if choice_action(new_price) == "b":
            break
        elif new_price.isdigit():
            new_price = int(new_price)
            alist = commodity[update_num-1][0].split(':')   #将商品名和价格转成一个列表,如['coffee', '30']
            alist[1] = new_price        #修改价格
            rc = run("sed -i '/%s/c %s:%s' %s" % (alist[0], alist[0], alist[1], file_name), shell=True)
            if not rc.returncode:
                cecho(92, "修改成功")
            else:
                cecho(31,"修改失败")
            view_shop(file_name)
        else:
            cecho(31, "Invalid Option")

#主程序
def show_menu():
    cmds = {'0': view_shop, '1': add_shop, '2': del_shop, '3': update_price}
    prompt = '''(0)查看商品信息
(1)增加商品
(2)删除商品
(3)修改商品价格
(b)返回上级菜单
(q)退出
输入(0/1/2/3/b/q):'''
    fname='/opt/shop_info.txt'      #保存商品信息
    while True:
        choice = input(prompt).strip()
        if choice not in '0123bq':
            cecho(31, "Invalid Option")
        elif choice_action(choice) == "b":
            cecho(31, "已经是第一级菜单")
        else:
            cmds[choice](fname)

if __name__ == "__main__":
    try:
        show_menu()
    except KeyboardInterrupt as e:
        print()
        cecho(31, "非正常退出,请下次输入字母q进行退出!")

效果图

Python实现仓库管理系统

Python实现仓库管理系统

Python实现仓库管理系统

Python实现仓库管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过apply使用元祖和列表调用函数实例
May 26 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
Python科学画图代码分享
Nov 29 Python
单利模式及python实现方式详解
Mar 20 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
python实现while循环打印星星的四种形状
Nov 23 Python
Python多重继承之菱形继承的实例详解
Feb 12 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
浅谈django 重载str 方法
May 19 Python
python Zmail模块简介与使用示例
Dec 19 Python
python单向链表实例详解
May 25 #Python
利用Python实现模拟登录知乎
May 25 #Python
python双向链表实例详解
May 25 #Python
Python实现双向链表基本操作
May 25 #Python
python实现双向链表原理
May 25 #Python
Python代码实现双链表
详解NumPy中的线性关系与数据修剪压缩
You might like
融入意大利的咖啡文化
2021/03/03 咖啡文化
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
php框架知识点的整理和补充
2021/03/01 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
python压包的概念及实例详解
2021/02/17 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
淘宝网店营销策划书
2014/01/11 职场文书
财务会计自荐信范文
2014/02/21 职场文书
应届毕业生自荐信例文
2014/02/26 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
医德医风个人总结
2015/02/28 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
旅行社计调工作总结
2015/08/12 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书