亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用python進行文件處理的庫存管理

 更新時間:2023年09月02日 09:44:42   作者:鯨落_  
庫存管理是任何處理實物商品的企業(yè)的一個重要方面,Python?提供了各種庫來讀取和寫入文件,使其成為管理庫存的絕佳選擇,它允許我們使用?Python?等編程語言來操作計算機文件系統(tǒng)上的文件,在本文中,我們將探討如何使用文件處理在?Tkinter?中實現(xiàn)庫存管理系統(tǒng)

使用 Tkinter 的庫存管理系統(tǒng)項目

將新產(chǎn)品添加到庫存

此函數(shù)將新的庫存條目添加到文本文件中。它從輸入字段檢索項目名稱和數(shù)量,以追加模式打開文件,并寫入 item_name、item_qty。然后它會清除輸入字段。

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 的匹配項,如果找到則更新記錄。

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)以只讀模式打開時,它會迭代 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ù)檢索要從輸入字段中刪除的項目名稱。它以讀取模式打開 inventory.txt 文件,并將所有庫存數(shù)據(jù)讀入列表中。然后以寫入模式再次打開該文件。它會迭代庫存數(shù)據(jù)中的每一行,檢查商品名稱是否與要刪除的商品名稱匹配,然后跳過寫入該行。

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ù)存儲在列表中。然后,庫存數(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進行文件處理的庫存管理的詳細內(nèi)容,更多關(guān)于python庫存管理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 關(guān)于tf.matmul() 和tf.multiply() 的區(qū)別說明

    關(guān)于tf.matmul() 和tf.multiply() 的區(qū)別說明

    這篇文章主要介紹了關(guān)于tf.matmul() 和tf.multiply() 的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 如何使用django的MTV開發(fā)模式返回一個網(wǎng)頁

    如何使用django的MTV開發(fā)模式返回一個網(wǎng)頁

    這篇文章主要介紹了如何使用django的MTV開發(fā)模式返回一個網(wǎng)頁,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python爬取股票最新數(shù)據(jù)并用excel繪制樹狀圖的示例

    python爬取股票最新數(shù)據(jù)并用excel繪制樹狀圖的示例

    這篇文章主要介紹了python爬取股票最新數(shù)據(jù)并用excel繪制樹狀圖的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • 詳解pyqt中解決國際化tr()函數(shù)不起作用的問題

    詳解pyqt中解決國際化tr()函數(shù)不起作用的問題

    本文主要介紹了pyqt中解決國際化tr()函數(shù)不起作用的問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • python將字符串轉(zhuǎn)變成dict格式的實現(xiàn)

    python將字符串轉(zhuǎn)變成dict格式的實現(xiàn)

    這篇文章主要介紹了python將字符串轉(zhuǎn)變成dict格式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python實現(xiàn)Socket.IO的在線游戲場景方式

    Python實現(xiàn)Socket.IO的在線游戲場景方式

    本文介紹了Socket.IO的基本概念、應(yīng)用場景,并通過一個簡單的多人在線實時對戰(zhàn)游戲案例,展示了如何使用Python和Socket.IO庫實現(xiàn)實時通信,Socket.IO的核心是事件驅(qū)動模型,支持WebSocket協(xié)議,并在不支持的情況下回退到其他傳輸方式
    2025-01-01
  • Python數(shù)據(jù)分析之?Matplotlib?餅圖繪制

    Python數(shù)據(jù)分析之?Matplotlib?餅圖繪制

    這篇文章主要介紹了Python數(shù)據(jù)分析之?Matplotlib?餅圖繪制,文章基于python的相關(guān)資料展開詳細的餅圖繪制,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 如何更改jupyter的默認文件路徑

    如何更改jupyter的默認文件路徑

    這篇文章主要介紹了如何更改jupyter的默認文件路徑問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • python tkinter 設(shè)置窗口大小不可縮放實例

    python tkinter 設(shè)置窗口大小不可縮放實例

    這篇文章主要介紹了python tkinter 設(shè)置窗口大小不可縮放實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python爬蟲 bilibili視頻彈幕提取過程詳解

    Python爬蟲 bilibili視頻彈幕提取過程詳解

    這篇文章主要介紹了Python爬蟲 bilibili視頻彈幕提取過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論