我有一个名为output.txt的文件,我想从代码中的一些函数写入,其中一些函数是递归的。 问题是,每次我写,我需要一次又一次地打开文件,然后删除我之前写的所有内容。 我很确定有一个解决方案,在之前提出的所有问题中都没有找到它。
def CutTable(Table, index_to_cut, atts, previousSv, allOfPrevSv):
print ('here we have:')
print atts
print index_to_cut
print Table[2]
tableColumn=0
beenHere = False
for key in atts:
with open("output.txt", "w") as f:
f.write(key)
并从另一个函数:
def EntForAttribute(possibles,yesArr):
svs = dict()
for key in possibles:
svs[key]=(yesArr[key]/possibles[key])
for key in possibles:
with open("output.txt", "w") as f:
f.write(key)
我拥有的所有输出都是用其中一个函数写的最后一个..
答案 0 :(得分:4)
打开文件时需要更改第二个标志:
w
仅用于写入(具有相同名称的现有文件)
擦除)a
打开要附加的文件您的代码应该是:
with open("output.txt", "a") as f:
答案 1 :(得分:2)
每次进入和退出with open...
块时,都会重新打开该文件。正如其他答案所提到的,您每次都会覆盖该文件。除了切换到附加内容之外,交换with
和for
循环可能是个好主意,因此您只需为每组写入打开一次文件:< / p>
with open("output.txt", "a") as f:
for key in atts:
f.write(key)
答案 2 :(得分:2)
我相信您需要以附加模式打开文件(如下所示:append to file in python),如下所示:
with open("output.txt", "a") as f:
## Write out
答案 3 :(得分:0)
简短回答。将文件描述符中的'w'更改为'a'以便追加。
with open("test.txt", "a") as myfile:
myfile.write("appended text")
这已经在这个帖子中得到了解答。 How do you append to a file?