使用Python写入文件

时间:2015-11-13 13:13:58

标签: python file writefile

我有一个名为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)

我拥有的所有输出都是用其中一个函数写的最后一个..

4 个答案:

答案 0 :(得分:4)

打开文件时需要更改第二个标志:

  • w仅用于写入(具有相同名称的现有文件) 擦除)
  • a打开要附加的文件

您的代码应该是:

with open("output.txt", "a") as f:

答案 1 :(得分:2)

每次进入和退出with open...块时,都会重新打开该文件。正如其他答案所提到的,您每次都会覆盖该文件。除了切换到附加内容之外,交换withfor循环可能是个好主意,因此您只需为每组写入打开一次文件:< / 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?