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项目发布为exe可执行程序过程分享
Oct 23 Python
Python中装饰器的一个妙用
Feb 08 Python
用实例分析Python中method的参数传递过程
Apr 02 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
Python3访问并下载网页内容的方法
Jul 28 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
python 读取文件并替换字段的实例
Jul 12 Python
使用tensorflow实现线性svm
Sep 07 Python
使用python画社交网络图实例代码
Jul 10 Python
Pytorch中膨胀卷积的用法详解
Jan 07 Python
django配置app中的静态文件步骤
Mar 27 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
hadoop中一些常用的命令介绍
2013/06/19 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
jQuery.each使用详解
2015/07/07 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
微信头像地址失效踩坑记附带解决方案
2019/09/23 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
python读取word文档的方法
2015/05/09 Python
python监控键盘输入实例代码
2018/02/09 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
python常量折叠基础知识点讲解
2021/02/28 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
医务工作者先进事迹材料
2014/01/26 职场文书
承租经营合作者协议书
2014/10/01 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
2016年记者节感言
2015/12/08 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
vue使用echarts实现折线图
2022/03/21 Vue.js
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA