我有一份库存清单。 例如:
1003,表,12.99,19.99,45
1004,chair,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)
目前,我总是最终删除文本文件中已有的内容
感谢您的时间,感谢任何帮助
答案 0 :(得分:0)
我会使用cvs模块阅读它。 然后将所有数据放在dict中或将其放入pandas数据帧中,
在任何一种情况下,您都可以操纵内容。
完成后,您可以将数据写回磁盘
如果你想按自己的方式去做,你应该在循环外打开和关闭文件,并写下所有行,替换你想要改变的行。我的经验是,这种方法太难了,特别是如果你想操纵更复杂的项目。