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解析json实例方法
Nov 19 Python
使用python开发vim插件及心得分享
Nov 04 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
python实现自动发送邮件
Jun 20 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
深入了解Django中间件及其方法
Jul 26 Python
PYTHON绘制雷达图代码实例
Oct 15 Python
python如何把字符串类型list转换成list
Feb 18 Python
Python如何获取文件指定行的内容
May 27 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 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
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
JavaScript 参考教程
2006/12/29 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
Jquery下:nth-child(an+b)的使用注意
2011/05/28 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
jquery延迟对象解析
2016/10/26 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
使用python制作一个解压缩软件
2019/11/13 Python
美国购车网站:TrueCar
2016/10/19 全球购物
YOOX台湾:意大利奢侈品电商
2018/10/13 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
军神教学反思
2014/02/04 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
公司委托书范本5篇
2014/09/20 职场文书
六年级学生期末评语
2014/12/26 职场文书
2015年党员承诺书
2015/01/21 职场文书
工程款申请报告
2015/05/15 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS