简体   繁体   English

只能将换行符写入文件

[英]Can only write newlines to file

I have the following script: 我有以下脚本:

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

It writes the newlines fine, when I print the string I get what I expect, but neither "garbage" nor string is ever written. 当我打印字符串时,它可以很好地编写换行符,我可以达到预期的效果,但是“垃圾”和字符串都不会被写入。

That's because you open it again as write just after. 那是因为您在写完之后再次打开它。 If you want to append to a file, use: 如果要附加到文件,请使用:

f = open(filename, "a")

When you open it with "w", you overwrite the current contents of the file. 当用“ w”打开它时,将覆盖文件的当前内容。 But it would probably be better to just open it once and close it once. 但最好只打开一次然后关闭一次。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM