比较在Python中打开文件的方法

Comparing ways of opening files in Python

提问人:Ci Leong 提问时间:1/9/2023 最后编辑:Ci Leong 更新时间:1/9/2023 访问量:51

问:

在 Python 中,有两种方法可以打开高级 I/O 的文件。

方法一:同时支持 string 和 Path 对象。

# This is analogous to `io.open` in Python 3.
with open(filepath) as f:
    ...

方式二:仅支持Path对象。

from pathlib import Path
...

# filepath must be a Path object.
with filepath.open() as f:
    ...

注意:我们在这里不考虑,因为它仅适用于低级 I/O。os.open

  1. 当方法 2 更模块化时,方法 2 何时优于方法 1?
  2. 有什么技术差异吗?
python-3.x io

评论


答:

0赞 Julien Sade 1/9/2023 #1

当您使用表示为 Path 对象的文件路径时,首选方法 2,因为它更简洁且更易于阅读。这两种方法之间没有技术差异,因为 open 只是一个采用文件路径并返回文件对象的函数,而 Path.open 是执行相同操作的 Path 对象的方法。

如果使用表示为字符串的文件路径,则应使用方法 1,因为它更灵活,可以同时处理字符串和 Path 对象。但是,如果专门使用 Path 对象,则可以使用方法 2 来简化和清晰。