2024-09-27 04:25:25 发布
网友
我试过的代码是:
dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","w") dtf.write("Hello people")
这在Android上运行得很好(对文件路径进行了适当的更改),但是在windows10下它会创建一个空文件。我怎样才能克服这个问题?在
文件为空的原因是您在打开文件对象之前没有关闭它。在
建议在大多数情况下使用with打开文件,因为它在场景后面为您关闭文件对象:
with
with open("C:\\Users\\foggi\\Documents\\Fred.txt","w") as f: f.write("Hello people")
你必须在写完文件后关闭它。在
dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","w") dtf.write("Hello people") dtf.close()
或者,最好是:
您可以阅读有关with块的更多信息,包括如何创建可以与with一起使用的对象,这里:http://preshing.com/20110920/the-python-with-statement-by-example/(第一个Google结果)。在
理论上,文件应该在终结器运行时关闭,但这并不一定会发生。您需要关闭文件以将其缓冲区刷新到磁盘,否则您“编写”的数据可能会挂在Python脚本的内存中。在
确保文件关闭的最佳方法是使用with块。在
with open("C:\\Users\\foggi\\Documents\\Fred.txt", "w") as fp: fp.write("Hello people")
另一个好方法是使用pathlib:
pathlib
您也可以手动关闭该文件,但不建议出于样式考虑:
fp = open("C:\\Users\\foggi\\Documents\\Fred.txt", "w") fp.write("Hello people") fp.close()
原因是在open和{}之间可能会发生一些事情,这会导致{}被跳过。在这么短的程序中,这无关紧要,但在较大的程序中,您可能会泄漏文件句柄,因此建议在任何地方使用with。在
open
文件为空的原因是您在打开文件对象之前没有关闭它。在
建议在大多数情况下使用
with
打开文件,因为它在场景后面为您关闭文件对象:你必须在写完文件后关闭它。在
或者,最好是:
^{pr2}$您可以阅读有关
with
块的更多信息,包括如何创建可以与with
一起使用的对象,这里:http://preshing.com/20110920/the-python-with-statement-by-example/(第一个Google结果)。在理论上,文件应该在终结器运行时关闭,但这并不一定会发生。您需要关闭文件以将其缓冲区刷新到磁盘,否则您“编写”的数据可能会挂在Python脚本的内存中。在
确保文件关闭的最佳方法是使用
with
块。在另一个好方法是使用
^{pr2}$pathlib
:您也可以手动关闭该文件,但不建议出于样式考虑:
原因是在}之间可能会发生一些事情,这会导致{}被跳过。在这么短的程序中,这无关紧要,但在较大的程序中,您可能会泄漏文件句柄,因此建议在任何地方使用
open
和{with
。在相关问题 更多 >
编程相关推荐