簡體   English   中英

如何在文本文件中編輯特定行的一部分

[英]How to edit part of a specific line in a text file

我有一個庫存清單。 例如:

1003,桌子,12.99、19.99、45

1004,椅子,3.99、9.99、32

格式如下:產品代碼,名稱,成本價格,價格,數量

我如何更新數量,以便在下訂單時-減少1等?

這是我到目前為止的代碼:

def stockupdate():
itemname = input("Enter product name: ")
f = open('Stockinventory.txt', 'r') 
search = f.readlines() 
f.close() 
for line in search:
    lst = line.split(", ") #split 
    if str(itemname) == lst[1]: #Check to see if number entered is first parameter on list
        print ("SIN: %s" % lst[0])
        print ("Itemname: %s" % lst[1])
        print ("Retail price: %s" % lst[2])
        print ("Costprice: %s" % lst[3])
        print ("Quantity Available: %s" % lst[4])

上面的第一部分僅向用戶顯示當前持有的產品信息

choice = input("Would you like to update quantity? y/n")
if choice == 'y':
    newquantity = input("Enter new quantity: ")

    with open('Stockinventory.txt', 'r') as f:
        data = f.readlines()
    f.close()
    for line in data:
        lst = line.split(", ")
        if str(itemname) == lst[1]:
            lst[4] = str(newquantity)
            lst = line.join(", ")
            f = open('Stockinventory.txt', 'w')
            if itemname != lst[1]:
                f.write(line)
            else:
                f.write(lst)

此刻,我總是最終刪除文本文件中已經存在的內容

感謝您的寶貴時間,我們將不勝感激

我會使用cvs模塊閱讀它。 然后將所有數據放入dict或放入pandas數據框中,

無論哪種方式,您都可以操作內容。

完成后,您可以將數據寫回到磁盤

如果要按自己的方式進行操作,則應在循環外打開和關閉文件,然后寫所有行,替換要更改的行。 我的經驗是,這種方法太困難了,尤其是當您要操作更復雜的項目時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM