欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現(xiàn)倉庫管理系統(tǒng)

 更新時間:2022年05月30日 14:31:19   作者:運維@小兵  
這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)倉庫管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Python實現(xiàn)倉庫管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

注意:在Linux環(huán)境運行

代碼

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName ?:store_system.py
# @Time ? ? ?:2020/3/3 23:10
# @Author ? ?:anqixiang
# @Function ?:模擬倉庫管理系統(tǒng)
'''
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(":") ? ? ? ? #把字符串轉(zhuǎn)成列表,以“:”分割
? ? ? ? ? ? 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(':') ? #將商品名和價格轉(zhuǎn)成一個列表,如['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, "已經(jīng)是第一級菜單")
? ? ? ? else:
? ? ? ? ? ? cmds[choice](fname)

if __name__ == "__main__":
? ? try:
? ? ? ? show_menu()
? ? except KeyboardInterrupt as e:
? ? ? ? print()
? ? ? ? cecho(31, "非正常退出,請下次輸入字母q進行退出!")

效果圖

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python文件名的匹配之clob庫

    Python文件名的匹配之clob庫

    這篇文章主要介紹了Python文件名的匹配之clob庫,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助喲,需要的朋友可以參考下
    2021-05-05
  • 使用Python的matplotlib庫繪制柱狀圖

    使用Python的matplotlib庫繪制柱狀圖

    這篇文章主要介紹了使用Python的matplotlib庫繪制柱狀圖,Matplotlib是Python中最常用的可視化工具之一,可以非常方便地創(chuàng)建海量類型地2D圖表和一些基本的3D圖表,可根據(jù)數(shù)據(jù)集自行定義x,y軸,繪制圖形,需要的朋友可以參考下
    2023-07-07
  • 利用Python編寫的實用運維腳本分享

    利用Python編寫的實用運維腳本分享

    Python在很大程度上可以對shell腳本進行替代。筆者一般單行命令用shell,復(fù)雜點的多行操作就直接用Python了。本文歸納了Python中一些實用腳本操作,需要的可以參考一下
    2022-05-05
  • Python機器學(xué)習(xí)NLP自然語言處理基本操作精確分詞

    Python機器學(xué)習(xí)NLP自然語言處理基本操作精確分詞

    本文是Python機器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程. 本文主要學(xué)習(xí)NLP自然語言處理基本操作之如何精確分詞
    2021-09-09
  • python 執(zhí)行文件時額外參數(shù)獲取的實例

    python 執(zhí)行文件時額外參數(shù)獲取的實例

    今天小編就為大家分享一篇python 執(zhí)行文件時額外參數(shù)獲取的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python將文本去空格并保存到txt文件中的實例

    Python將文本去空格并保存到txt文件中的實例

    今天小編就為大家分享一篇Python將文本去空格并保存到txt文件中的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 淺析Python打包時包含靜態(tài)文件處理方法

    淺析Python打包時包含靜態(tài)文件處理方法

    這篇文章主要介紹了Python打包時包含靜態(tài)文件處理方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 使用Docker制作Python環(huán)境連接Oracle鏡像

    使用Docker制作Python環(huán)境連接Oracle鏡像

    這篇文章主要為大家介紹了使用Docker制作Python環(huán)境連接Oracle鏡像示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • python pandas輕松通過特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用

    python pandas輕松通過特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用

    這篇文章主要介紹了python pandas輕松通過特定列的值多條件去篩選數(shù)據(jù)及contains方法的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python實現(xiàn)的多線程端口掃描功能示例

    python實現(xiàn)的多線程端口掃描功能示例

    這篇文章主要介紹了python實現(xiàn)的多線程端口掃描功能,結(jié)合實例形式分析了Python基于socket的端口掃描具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01

最新評論