使用python進(jìn)行文件處理的庫存管理
使用 Tkinter 的庫存管理系統(tǒng)項(xiàng)目
將新產(chǎn)品添加到庫存
此函數(shù)將新的庫存條目添加到文本文件中。它從輸入字段檢索項(xiàng)目名稱和數(shù)量,以追加模式打開文件,并寫入 item_name、item_qty。然后它會(huì)清除輸入字段。
def add_inventory():
item_name = item_name_entry.get()
item_qty = int(item_qty_entry.get())
with open('inventory.txt', 'a') as file:
file.write(f'{item_name},{item_qty}\n')
item_name_entry.delete(0, tk.END)
item_qty_entry.delete(0, tk.END)更新庫存
此函數(shù) update_inventory() 根據(jù)給定的輸入更新值更新現(xiàn)有的 item_name 和 item_qty 。它以寫入模式打開文件并從當(dāng)前清單中讀取數(shù)據(jù)。它循環(huán)遍歷每一行,查找與 item_name 的匹配項(xiàng),如果找到則更新記錄。
def update_inventory():
item_name = item_name_entry.get()
item_qty = int(item_qty_entry.get())
with open('inventory.txt', 'r') as file:
inventory_data = file.readlines()
with open('inventory.txt', 'w') as file:
for line in inventory_data:
name, qty = line.strip().split(',')
if name == item_name:
file.write(f'{name},{item_qty}\n')
else:
file.write(line)
item_name_entry.delete(0, tk.END)
item_qty_entry.delete(0, tk.END)搜索并顯示當(dāng)前庫存
該函數(shù)從需要搜索的輸入字段中提取 item_name 。當(dāng)以只讀模式打開時(shí),它會(huì)迭代 inventory.txt 文件的每一行。在這里,如果商品名稱與搜索名稱匹配,我們將使用 result_label 顯示商品名稱和金額。
def search_inventory():
search_name = item_name_entry.get()
with open('inventory.txt', 'r') as file:
for line in file:
name, qty = line.strip().split(',')
if name == search_name:
result_label.config(text=f'{name} - {qty}')
return
result_label.config(text=f'{search_name} not found in inventory.')
item_name_entry.delete(0, tk.END)從庫存中移除物品
remove_inventory() 函數(shù)從 inventory.txt 文件中刪除特定的庫存條目。該函數(shù)檢索要從輸入字段中刪除的項(xiàng)目名稱。它以讀取模式打開 inventory.txt 文件,并將所有庫存數(shù)據(jù)讀入列表中。然后以寫入模式再次打開該文件。它會(huì)迭代庫存數(shù)據(jù)中的每一行,檢查商品名稱是否與要?jiǎng)h除的商品名稱匹配,然后跳過寫入該行。
def remove_inventory():
remove_name = item_name_entry.get()
with open('inventory.txt', 'r') as file:
inventory_data = file.readlines()
with open('inventory.txt', 'w') as file:
for line in inventory_data:
name, qty = line.strip().split(',')
if name != remove_name:
file.write(line)
item_name_entry.delete(0, tk.END)
item_qty_entry.delete(0, tk.END)生成完整的庫存清單
generate_inventory () 函數(shù)從文本文件生成庫存條目的完整列表。它讀取文件并將庫存數(shù)據(jù)存儲(chǔ)在列表中。然后,庫存數(shù)據(jù)將連接成帶有換行符的字符串。最后,該字符串顯示在result_label中以顯示完整的庫存列表。
def generate_inventory():
with open('inventory.txt', 'r') as file:
inventory_data = file.readlines()
inventory_text = '\n'.join(inventory_data)
result_label.config(text=inventory_text)完整代碼
import tkinter as tk
# 添加新庫存分錄的功能
def add_inventory():
item_name = item_name_entry.get()
item_qty = int(item_qty_entry.get())
with open('inventory.txt', 'a') as file:
file.write(f'{item_name},{item_qty}\n')
item_name_entry.delete(0, tk.END)
item_qty_entry.delete(0, tk.END)
# 更新現(xiàn)有庫存分錄的功能
def update_inventory():
item_name = item_name_entry.get()
item_qty = int(item_qty_entry.get())
with open('inventory.txt', 'r') as file:
inventory_data = file.readlines()
with open('inventory.txt', 'w') as file:
for line in inventory_data:
name, qty = line.strip().split(',')
if name == item_name:
file.write(f'{name},{item_qty}\n')
else:
file.write(line)
item_name_entry.delete(0, tk.END)
item_qty_entry.delete(0, tk.END)
# 用于搜索和顯示庫存條目的功能
def search_inventory():
search_name = item_name_entry.get()
with open('inventory.txt', 'r') as file:
for line in file:
name, qty = line.strip().split(',')
if name == search_name:
result_label.config(text=f'{name} - {qty}')
return
result_label.config(text=f'{search_name} not found in inventory.')
item_name_entry.delete(0, tk.END)
# 刪除現(xiàn)有庫存分錄的功能
def remove_inventory():
remove_name = item_name_entry.get()
with open('inventory.txt', 'r') as file:
inventory_data = file.readlines()
with open('inventory.txt', 'w') as file:
for line in inventory_data:
name, qty = line.strip().split(',')
if name != remove_name:
file.write(line)
item_name_entry.delete(0, tk.END)
item_qty_entry.delete(0, tk.END)
# 用于生成完整庫存列表的函數(shù)
def generate_inventory():
with open('inventory.txt', 'r') as file:
inventory_data = file.readlines()
inventory_text = '\n'.join(inventory_data)
result_label.config(text=inventory_text)
# 創(chuàng)建主窗口
root = tk.Tk()
root.title("Inventory Management")
# 輸入字段
item_name_label = tk.Label(root, text="Item Name:")
item_name_label.grid(row=0, column=0, padx=5, pady=5)
item_name_entry = tk.Entry(root)
item_name_entry.grid(row=0, column=1, padx=5, pady=5)
item_qty_label = tk.Label(root, text="Item Quantity:")
item_qty_label.grid(row=1, column=0, padx=5, pady=5)
item_qty_entry = tk.Entry(root)
item_qty_entry.grid(row=1, column=1, padx=5, pady=5)
# 創(chuàng)建按鈕
add_button = tk.Button(root, text="Add Inventory",
command=add_inventory)
add_button.grid(row=2, column=0, padx=5, pady=5)
update_button = tk.Button(root, text="Update Inventory",
command=update_inventory)
update_button.grid(row=2, column=1, padx=5, pady=5)
search_button = tk.Button(root, text="Search Inventory",
command=search_inventory)
search_button.grid(row=3, column=0, padx=5, pady=5)
remove_button = tk.Button(root, text="Remove Inventory",
command=remove_inventory)
remove_button.grid(row=3, column=1, padx=5, pady=5)
generate_button = tk.Button(root, text="Generate Inventory",
command=generate_inventory)
generate_button.grid(row=4, column=0, padx=5, pady=5)
result_label = tk.Label(root, text="List")
result_label.grid(row=5, column=0, padx=5, pady=5)
root.mainloop()以上就是使用python進(jìn)行文件處理的庫存管理的詳細(xì)內(nèi)容,更多關(guān)于python庫存管理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python使用Matplotlib繪制基礎(chǔ)可視化圖表的完整指南
在Python中進(jìn)行數(shù)據(jù)可視化,最常用且功能強(qiáng)大的庫是?Matplotlib,它可以幫助你輕松繪制出柱狀圖,折線圖,餅圖,散點(diǎn)圖等,下面小編就和大家詳細(xì)介紹一下具體實(shí)現(xiàn)方法吧2026-05-05
python+numpy實(shí)現(xiàn)的基本矩陣操作示例
這篇文章主要介紹了python+numpy實(shí)現(xiàn)的基本矩陣操作,結(jié)合實(shí)例形式分析了Python使用numpy模塊針對(duì)矩陣進(jìn)行創(chuàng)建、增刪查改、索引、運(yùn)算相關(guān)操作實(shí)現(xiàn)技巧,注釋中包含有詳細(xì)的說明,需要的朋友可以參考下2019-07-07
Python 實(shí)現(xiàn)自動(dòng)化Excel報(bào)表的步驟
這篇文章主要介紹了Python 實(shí)現(xiàn)自動(dòng)化Excel報(bào)表的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
解決Tensorflow使用pip安裝后沒有model目錄的問題
今天小編就為大家分享一篇解決Tensorflow使用pip安裝后沒有model目錄的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06

