本文介绍如何使用 pathlib 模块的 write_text() 方法,以简洁、安全的一行代码完成文件打开、写入和关闭操作,避免手动管理文件句柄导致的资源泄漏或 AttributeError。

本文介绍如何使用 pathlib 模块的 `write_text()` 方法,以简洁、安全的一行代码完成文件打开、写入和关闭操作,避免手动管理文件句柄导致的资源泄漏或 AttributeError。

在 Python 中,若尝试用链式调用实现“打开 → 写入 → 关闭”(如 Path('foo').open('w').write('text').close()),会因 write() 方法返回写入字符数(int 类型)而非文件对象而报错:AttributeError: 'int' object has no attribute 'close'。根本原因在于:write() 是副作用操作,不返回可链式调用的文件对象

正确且推荐的解决方案是使用 pathlib.Path.write_text() —— 它专为原子性文本写入设计:

from pathlib import Path

Path('foo').write_text('some text')

该方法内部自动以文本模式('w')打开文件、写入内容、刷新缓冲区并安全关闭,全程无需手动干预。它还支持常用参数,例如指定编码和换行符:

Path('foo').write_text('Hello, 世界\n', encoding='utf-8', newline='\n')

⚠️ 注意事项:

# 更显式、更可控(非单行,但强烈推荐用于生产环境)
with Path('foo').open('w', encoding='utf-8') as f:
    f.write('some text')

总结:Path.write_text() 是官方推荐的、符合 Python 惯例的一行式文本写入方案——简洁、安全、可读性强,且天然规避了手动 close 的陷阱。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。