Python实现仓库管理系统

本文实例为大家分享了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进行退出!")

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python实现超市管理系统(后台管理)

    本文实例为大家分享了python实现超市管理系统的具体代码,供大家参考,具体内容如下 这个相比上个程序简单很多,首先他没有太过复杂的逻辑关系,它的逻辑线条很清晰,你能很清楚的知道要做什么,只要往自己想的方面实现就行,代码如下 # coding: utf-8 # 定义仓库 repository = dict() # 定义购物清单对象 shop_list = [] # 定义仓库里商品数量 shangpin = [["1000001", "你好世界", 88.0, 10]

  • python实现库存商品管理系统

    题目要求: 请设计一个商品管理系统,程序要求根据用户输入的选项进入相应的功能模块,并显示相应的提示信息.若用户输入其他选项时,提示“输入有误”.程序的功能模块有: 1.添加 程序读取源文件路径下的goodinformation.txt,若没有就创建.当添加的商品已存在时,显示“该商品已存在” 2.查询 根据用户输入的商品名称,查询商品信息,并输出.当查询的商品不存在时,显示“商品库中无该商品” 3.统计 根据goodinformation.xt中的数据,生成统计数据,包括(商品种类,商品总数,销

  • python实现超市商品销售管理系统

    本文实例为大家分享了python超市商品销售管理系统的具体代码,供大家参考,具体内容如下 需求分析:超市销售管理系统功能 1.欢迎用户使用超市销售管理系统,提示用户登录,如果是用户名为admin,密码为123456,则管理员身份. 如果是其他用户(可以自己设置也可随意接收),则是顾客身份. 2.如果用户是管理员身份,提示用户输入编号,选择对应功能 输入编号"1":显示商品的信息 (编号 商品名称 价格) 输入编号"2":添加商品信息 (输入编号,商品名称,价格) 输

  • python实现简单的超市商品销售管理系统

    本文实例为大家分享了python超市商品销售管理系统的具体代码,供大家参考,具体内容如下 class Goods(object): def __init__(self, id, name, price): self.id = id self.name = name self.price = price def __str__(self): info = "编号:%s\t商品名称:%s\t\t价格:%d" % (self.id, self.name, self.price) return

  • Python实现仓库管理系统

    本文实例为大家分享了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.可以

  • C++实现商店仓库管理系统

    本文实例为大家分享了C++实现商店仓库管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 系统应具有下列主要功能:输入记录功能:从键盘输入货物信息:商品代号,商品名称, 数量,价格,所属类别(如家用电器.日用品等)等:修改商品数量.删除记录功能.按商品代号查询.按商品代号排序并显示等功能. 二.基本要求 (1)使用面向对象编程思想编写开发过程中需要用到的类,使用继承的方法构造至少 3个类(即商品类(虚基类),家用电器类和日用品类(派生类)),另外再设计一个管理类,实现对商品的管理:(2)

  • 利用anaconda作为python的依赖库管理方法

    python自带的pip管理依赖库太麻烦,pip很多库不存在,或者一些库并不支持window系统.而且每次用pip下载库经常不成功,结果还是要手动下载跟自己python对应的whl包安装库. 遇到了很多坑之后,发现神奇anaconda,便查阅资料,整理好记录到这里 1.下载anaconda anaconda可以提供了python的很多库管理,支持多个系统 下载地址:https://www.anaconda.com/download/ 这里我下载了python3.6,64位window系统,ana

  • python实现内存监控系统

    本文实例为大家分享了python实现内存监控系统的具体代码,供大家参考,具体内容如下 思路:通过系统命令或操作系统文件获取到内存信息(linux 内存信息存在/proc/meminfo文件中,mac os 通过命令vm_stat命令可以查看) 并将获取到信息保存到数据库中,通过web将数据实时的展示出来.(获取数据-展示数据) 1.后台数据采集(获取数据) import subprocess import re import MySQLdb as mysql import time import

  • python 简单照相机调用系统摄像头实现方法 pygame

    如下所示: # -*- coding: utf-8 -*- from VideoCapture import Device import time import pygame from pygame.locals import * import sys pygame.init() size = width, height = 620, 485 print size speed = [2, 2] black = 0, 0, 0 if pygame.display.get_init(): print

  • python实现图书借阅系统

    本文实例为大家分享了python实现图书借阅系统的具体代码,供大家参考,具体内容如下 部分代码: from flask import Flask,render_template from flask import request from DB import createdb from flask import session app = Flask(__name__) app.config['SECRET_KEY'] = '123456' # 首页-->登录页面 @app.route('/')

  • python实现银行实战系统

    本文实例为大家分享了python实现银行实战系统的具体代码,供大家参考,具体内容如下 先附上源代码: │ admin.py                         管理员界面 │ alluser.txt                        保存用户信息 │ atm.py                             银行的各部分操作方法(存钱取钱等等) │ card.py                            定义卡的类 │ main.py      

  • python实现人脸签到系统

    本文实例为大家分享了python实现人脸签到系统的具体代码,供大家参考,具体内容如下 简易版人脸签到/签退系统 管理员可进行录入人脸操作,以及导出各类签到情况表: 普通学生只可人脸识别进行签到签退操作. face_Recognizer.py import cv2 import os import numpy as np from PIL import Image #pillow import pyttsx3 import sys import test.student_sql as connec

  • 利用Python实现某OA系统的自动定位功能

    本文介绍了笔者通过python程序实现某OA系统自动考勤打卡功能及相关逻辑原理的解析. Github: https://github.com/cahi1l1yn/eChecker 需求分析 疫情期间,笔者所在公司使用某OA系统的考勤功能代替原来的刷脸考勤,结果导致很多人经常忘记打卡,于是笔者寻思着能不能写个程序实现自动考勤,希望实现的主要功能是:指定用户名密码登录和指定时间签到签退,扩展功能是:自定义签到和签退的IP或定位地址. 系统逻辑分析 为了通过python实现上述功能,首先需要人工访问系

  • python自动统计zabbix系统监控覆盖率的示例代码

    脚本主要功能: 1)通过zabbix api接口采集所有监控主机ip地址: 2)通过cmdb系统(蓝鲸)接口采集所有生产主机IP地址.主机名.操作系统.电源状态: 3)以上2步返回数据对比,找出未监控主机ip地址,生成csv文件: 4)发送邮件. 脚本如下: #!/usr/bin/python #coding:utf-8 import requests import json import re import time import csv from collections import Cou

随机推荐