所以我创建了一个使用txt文件存储数据的股票文件系统。当库存水平低于某个值时,我想将这些产品插入单独的txt文件中。每当我这样做时,文件只有最后一个产品的数据,因为每次循环运行时,下一个产品的数据会覆盖以前产品的数据。
编辑:我应该提一下,我使用字典作为数据源,这是每个值,如SLref被分配给
以下是代码:
with open("Under the Reorder Level.txt", "r+") as u:
for item in restockItem:
while count < len(restockItem):
u.write(gtin)
u.write(' ')
product = str(restockItem[count])
u.write(product)
u.write(' ')
SLref = restockItemStock[count]
stocklevel = str(restockItemStock[count]))
u.write(stocklevel)
u.write(' ')
RLref = restockItemReorder[count]
reorderlevel = str(restockItemReorder[count])
u.write(reorderlevel)
u.write(' ')
TLref = restockItemTarget[count]
targetlevel = str(restockItemTarget[count])
u.write(targetlevel)
u.write(' ')
u.write('£')
u.write(' ')
Pref = restockItemPrice[count]
price = str(restockItemPrice[count])
u.write(price)
u.write('\n')
count = count + 1
print (count)
u.close()
txt文件中的输出显示为:
“09876545门票6 10 50£100”
何时应阅读:
“12345670 HairBrush 17 10 50£1
10101018 PhotoFrame 11 10 50£15
09876545门票6 10 50£100“
编辑NO.2: 每次运行代码时,可能会有不同的库存水平,库存水平下的一些新项目或不再存储在库存水平下的项目。如果这些项目不再低于库存水平,我不希望将它们写入此文件。因此,我希望每次在写入文件之前清除该文件。 在该代码块之前检测到库存水平下的项目,然后将其放入上面使用的名为“RestockItem”的列表中。 我理解你打开文件的不同方式,我只是不确定我现在做错了什么。我以前的错误已经修复,但是在使用此循环之前清除文件时,我无法获得正确的输出。
open("Under the Reorder Level.txt", 'w+').close()
with open("Under the Reorder Level.txt", "a+") as u:
for item in restockItem:
while count < len(restockItem):
u.write(gtin)
u.write(' ')open("Under the Reorder Level.txt", 'w+').close()
with open("Under the Reorder Level.txt", "a+") as u:
for item in restockItem:
while count < len(restockItem):
u.write(gtin)
u.write(' ')
#carries on.......
答案 0 :(得分:1)
更改标记以将文件从r+
打开到a+
。这意味着从文件末尾开始写作和阅读。
Here is a difference between them explained on SO
如果您想完全覆盖该文件,则可以使用&#39; w&#39;选项,写作。 Here is a list of flags explained