只能将新行写入文件

时间:2013-05-26 13:48:59

标签: python

我有以下脚本:

import random

def mf():
    filename = raw_input("file: ")
    string="a"
    while (string):
        string = raw_input("ID\n")
        string += " | "
        string += raw_input("Title\n")
        string += " | "
        string += raw_input("Artist\n")
        string += " | "
        string += raw_input("Kind\n")
        string += " | "
        string += raw_input("Year\n")
        string += " | "
        string += raw_input("Ranking\n")
        string += " | "
        string += raw_input("Purchased\n")
        string += " | "
        string += raw_input("c\n")
        f = open(filename,'w')
        print string
        f.write(string)
        f.write("garbage")
        f.write("\n")
        f.close()
        string = raw_input("...")
    n = random.randint(1,4)
    f = open(filename,'w')
    for i in range(n):
        f.write("\n")
    f.close()

它写新线很好,当我打印字符串时,我得到了我所期望的,但是既没有“垃圾”也没有写过字符串。

1 个答案:

答案 0 :(得分:4)

那是因为你刚刚再次打开它。 如果要附加到文件,请使用:

f = open(filename, "a")

使用“w”打开时,会覆盖文件的当前内容。 但是打开它一次并关闭它可能会更好。