如何在Windows10中使用Python3将文本写入文件

2024-09-27 04:25:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试过的代码是:

dtf = open("C:\\Users\\foggi\\Documents\\Fred.txt","w")
dtf.write("Hello people")

这在Android上运行得很好(对文件路径进行了适当的更改),但是在windows10下它会创建一个空文件。我怎样才能克服这个问题?在


Tags: 文件代码路径txthelloopenfredpeople
3条回答

文件为空的原因是您在打开文件对象之前没有关闭它。在

建议在大多数情况下使用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()

或者,最好是:

^{pr2}$

您可以阅读有关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

^{pr2}$

您也可以手动关闭该文件,但不建议出于样式考虑:

fp = open("C:\\Users\\foggi\\Documents\\Fred.txt", "w")
fp.write("Hello people")
fp.close()

原因是在open和{}之间可能会发生一些事情,这会导致{}被跳过。在这么短的程序中,这无关紧要,但在较大的程序中,您可能会泄漏文件句柄,因此建议在任何地方使用with。在

相关问题 更多 >

    热门问题