
Python 中使用 pathlib 模块的 write_text() 方法,可在单行内完成文件打开、写入和自动关闭,避免手动管理文件句柄,既简洁又安全。
python 中使用 pathlib 模块的 `write_text()` 方法,可在单行内完成文件打开、写入和自动关闭,避免手动管理文件句柄,既简洁又安全。
在 Python 开发中,常需以简洁方式向文件写入内容。初学者可能尝试链式调用 Path('foo').open('w').write('some text').close(),但会触发 AttributeError: 'int' object has no attribute 'close'——这是因为 file.write() 方法返回的是写入的字符数(int 类型),而非文件对象本身,因此无法继续调用 .close()。
✅ 正确做法是使用 pathlib 内置的高层封装方法:
from pathlib import Path
Path('foo').write_text('some text')该方法底层自动以文本模式('w')打开文件、写入字符串、并确保文件被正确关闭,全程无需手动干预。它还默认使用系统编码(通常是 UTF-8),并支持显式指定编码与错误处理策略:
Path('foo').write_text('你好,世界!', encoding='utf-8', errors='replace')⚠️ 注意事项:
- write_text() 会覆盖已有文件内容(等效于 'w' 模式);如需追加,请改用 Path('foo').open('a').write(...) 并配合 with 语句(此时已非单行,但更可控);
- 若需二进制写入(如图片、序列化数据),应使用 write_bytes();
- 避免在生产环境中对不可信路径直接调用 write_text(),需先校验路径合法性,防止路径遍历等安全风险。
? 补充:读取文件同样有对应的一行方案——Path('foo').read_text(),它自动以文本模式打开、读取全部内容并安全关闭,与 write_text() 形成完美配对。
综上,write_text() 不仅解决了“单行写入并关闭”的需求,更通过抽象掉底层 I/O 细节,提升了代码可读性、健壮性与安全性,是现代 Python 文件操作的推荐实践。

















