【发布时间】:2019-11-09 20:49:00
【问题描述】:
我似乎无法理解为什么这段代码没有写入我的文件。
当我删除循环时,它可以完美运行。我似乎无法意识到循环正在做什么,它不会让它写。
filename = 'guest_book.txt'
with open(filename, 'w') as file_object:
while True:
name = input("Nombre:")
file_object.write(name)
print(f"Welcome {name}!\n")
我希望该代码打印欢迎消息并写入guest_book.txt 文件。
【问题讨论】:
-
你永远不会结束循环;如果您通过某种方式停止循环,它会写入文件吗?
-
一些系统在内存中使用缓冲区,它们仅在您关闭文件时才写入文件。没有
while,它会结束程序并关闭文件,但使用while True,你必须破坏代码,它可能无法保存。 -
是的。使用“中断”,但我看不到欢迎消息并且控制台关闭。
-
为了提高性能,如果文件句柄是 stderr 流,大多数应用程序只会刷新每个应用程序写入。这允许程序“批量”写入。从而减少系统(即内核)调用的数量以及许多其他好处。