我正在制作一个程序,要求我迭代一个文本文件并完成一个总和,任何低于所需值的值都需要添加到发票文件中。但是,我创建的代码只写了一个产品而不是每个需要重新进货的产品。
这是主要代码:
def createRestockFile(productName,minimumStockLevel,currentStock, amountNeeded,costToUs):
with open("invoice.txt", 'r+') as f:
f.write("#Product Name\tMinimum Stock Level\tCurrent Stock Level\tAmount Needed\tCost To Re-Order \n")
f.write("%s\t%s\t%s\t%s\t%s" % (productName,minimumStockLevel,currentStock,amountNeeded,costToUs))
def checkStock():
with open("stock.txt",'r+') as f:
for line in f:
if int(line.split()[2]) < int(line.split()[5]):
amountNeeded = int(line.split()[5]) - int(line.split()[2])
total = '£{:,.2f}'.format(float(line.split()[3])*amountNeeded)
createRestockFile(line.split()[1],line.split()[5],line.split()[2],amountNeeded,total)
print(line.split())
def startProgramme():
yesInput = ["yes", "yes please", "y"]
noInput = ["no","nope","n"]
print("Welcome to Sean's Stock re-order programme")
choice = input("Would you like to check which products need re-ordering ")
if choice in yesInput:
checkStock()
elif choice in noInput:
import time
print("Thank you for using Sean's re-order programme")
print("Ending Programme")
time.sleep(0.6)
exit()
startProgramme()
以下是发票档案:
#Product Name Minimum Stock Level Current Stock Level Amount Needed Cost To Re-Order
Wispa 16 6 10 £3.4003.40
以下是库存文件:
45678948 Twix 12 0.42 0.65 25 50
12345670 Wispa 6 0.34 0.85 16 40
26073125 Crunchie 37 0.37 0.69 8 43
24785122 Flake 47 0.24 0.65 10 35
45678914 Snickers 42 0.46 0.75 8 32
78945617 Maltesers 78 0.32 0.56 12 65
85146945 Galaxy 57 0.32 0.76 9 54
使用stock文件中的给定值,程序应该将twix和wispa添加到发票文件中,但是只添加了wispa。任何帮助将不胜感激
答案 0 :(得分:0)
您需要更改打开invoice.txt的模式。对于该功能,您需要将其从r+
更改为a+
;它正在编写twix发票,然后将其删除,然后写下wispa。
答案 1 :(得分:0)
以下代码适用于我。
我已将您打开发票文件的代码中的位置移动到主程序中,以便您可以保持打开模式&#34; w +&#34;。另请注意,我编写的代码只能将输入行拆分一次(节省时间并缩短代码)
sum