2

次のスクリプトがあります。

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()

文字列を印刷すると、期待どおりの結果が得られますが、「ガベージ」も文字列も書き込まれません。

4

1 に答える 1

4

それは、直後に write として再度開くためです。ファイルに追加する場合は、次を使用します。

f = open(filename, "a")

「w」で開くと、ファイルの現在の内容を上書きします。しかし、一度開いて一度閉じるだけの方が良いでしょう。

于 2013-05-26T13:53:29.730 に答える