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 Mysql数据库操作 Perl操作Mysql数据库
Jan 12 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
Python Socket传输文件示例
Jan 16 Python
VTK与Python实现机械臂三维模型可视化详解
Dec 13 Python
python实现梯度下降算法
Mar 24 Python
TensorFlow实现打印每一层的输出
Jan 21 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
Python实现屏幕录制功能的代码
Mar 02 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
python读取pdf格式文档的实现代码
Apr 01 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 Python
Python如何让字典保持有序排列
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获取网站域名和地址的代码
2008/08/17 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
浅谈PHP中的
2016/04/23 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
js如何验证密码强度
2020/03/18 Javascript
js实现计算器功能
2020/08/10 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python之reload流程实例代码解析
2018/01/29 Python
python opencv之分水岭算法示例
2018/02/24 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python如何实现远程方法调用
2020/08/07 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
整改报告怎么写
2014/11/06 职场文书
离婚协议书范本
2015/01/26 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书