0

我制作了一个可以引用函数的文件,我认为制作一个向文件添加文本的程序会很有趣,当我尝试打开文件时,它没有显示任何错误,但是当我去的时候并检查文件那里什么都没有。我的代码:

ime_funk = input("Ime funkcije: ")
x = 0
funk = ""
while True:
    vseb_funk = input("Kopiraj eno, pa po eno vrstico funkcije, ko si končal napiši končano: ")
    if vseb_funk == "končano":
          break
    else:
        funk += "\n    "+vseb_funk

mark = open("test.txt", "a")
mark.write("\n" + ime_funk + "\n" + funk)

不要注意变量名和字符串,因为那不重要。如果这很重要,我也会使用 replit。我不知道为什么它不起作用。我试过mark = open("test.txt", "w")但同样的故事。

4

2 回答 2

0

您需要将此行添加到您的代码中

mark.close()

或者你能做什么我替换这部分代码

mark = open("test.txt", "a")
mark.write("\n" + ime_funk + "\n" + funk)

使用此代码:

with open("test.txt", "a") as mark:
   mark.write("\n" + ime_funk + "\n" + funk)
于 2022-01-29T12:28:50.520 回答
0

在您调用file.flush(). 这通常在您关闭文件时自动调用,但在您的示例中,您永远不会关闭文件。尝试:

ime_funk = input("Ime funkcije: ")
x = 0
funk = ""
while True:
    vseb_funk = input("Kopiraj eno, pa po eno vrstico funkcije, ko si končal napiši končano: ")
    if vseb_funk == "končano":
          break
    else:
        funk += "\n    "+vseb_funk

mark = open("test.txt", "a")
mark.write("\n" + ime_funk + "\n" + funk)
mark.close()

甚至更好地尝试使用以下with语句:

with open("test.txt", "a") as mark:
    mark.write("\n" + ime_funk + "\n" + funk)

这种方式close()被自动调用

于 2022-01-29T12:29:05.650 回答