You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pathlib一行式操作文件后,如何正确关闭文件?

正确关闭pathlib打开的文件

你遇到的问题根源在于:write()方法会返回写入的字符数(整数类型),而不是文件对象本身,所以链式调用.close()时,实际上是在整数上调用方法,自然会触发AttributeError。

下面是两种正确的关闭文件的方式:

方式一:手动保存文件对象并关闭

先把open()返回的文件对象赋值给变量,完成写入后手动调用close():

from pathlib import Path

p = Path('foo')
file_obj = p.open('w')
file_obj.write('some text')
file_obj.close()

方式二:使用with语句(推荐)

这是Python中处理文件的最佳实践,with代码块执行完毕后会自动关闭文件,无需手动调用close(),还能避免因忘记关闭导致的资源泄漏:

from pathlib import Path

p = Path('foo')
with p.open('w') as file_obj:
    file_obj.write('some text')

另外补充一点:你之前看到的描述“Python文件方法write()将字符串str写入文件,无返回值”是不准确的,实际上write()会返回写入的字符数(文本模式)或字节数(二进制模式),这也是你触发错误的核心原因。

内容的提问来源于stack exchange,提问作者CatBraaain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 03:22:07