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实现的简单万年历例子分享
Apr 25 Python
Python实现求最大公约数及判断素数的方法
May 26 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
python根据京东商品url获取产品价格
Aug 09 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
Python面向对象之私有属性和私有方法应用案例分析
Dec 31 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
简单的命令查看安装的python版本号
Aug 28 Python
python中count函数知识点浅析
Dec 17 Python
用python批量移动文件
Jan 14 Python
Python中全局变量和局部变量的理解与区别
Feb 07 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/02/27 无线电
改进的IP计数器
2006/10/09 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
PHP实现生成唯一会员卡号
2015/08/24 PHP
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Python netmiko模块的使用
2020/02/14 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
C#笔试题集合
2013/06/21 面试题
设计模式的基本要素是什么
2014/04/21 面试题
数控专业个人求职信范例
2013/11/29 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
从原生JavaScript到React深入理解
2022/07/23 Javascript