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之入门(四)运算
May 27 Python
python爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
python实现DES加密解密方法实例详解
Jun 30 Python
Python2.x版本中基本的中文编码问题解决
Oct 12 Python
python中根据字符串调用函数的实现方法
Jun 12 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
python使用epoll实现服务端的方法
Oct 16 Python
django 类视图的使用方法详解
Jul 24 Python
django认证系统实现自定义权限管理的方法
Aug 28 Python
Django分组聚合查询实例分享
Apr 29 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中ADODB类详解
2008/03/25 PHP
php 字符串替换的方法
2012/01/10 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
js操作select控件的几种方法
2010/06/02 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python函数和模块的使用总结
2019/05/20 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
股指期货心得体会
2014/09/13 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
研究生导师推荐信
2015/03/25 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
现实表现证明材料
2015/06/19 职场文书
公司新员工欢迎词
2015/09/30 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python