问题:pathlib 附加模式下的路径write_text

在附加模式下,pythonpathlib.Path对象到write_text()是否有快捷方式?

标准的open()函数具有mode="a"来打开文件以写入文件并在该文件存在时附加到该文件,并且Paths.open()函数似乎具有相同的功能(my_path.open("a"))。

但是方便的.write_text('..')快捷方式怎么样,有没有办法使用pathlib打开并附加到文件,只需执行与open()相同的操作?

为了清楚起见,我可以做

with my_path.open('a') as fp:
    fp.write('my text')

但还有其他方法吗?

my_path.write_text('my text', mode='a')

解答

并非如此,正如您在 pathlib 模块中看到的那样,存在两种类型的路径类:

  • 纯路径类 {PurePath, PurePosixPath, PureWindowsPath}

  • 具体路径类 {Path, PosixPath, WindowsPath}。

这些类构造函数的参数将只是*pathsegments

如果您查看可用的读/写方法(read_text/read_bytes 和 write_text/write_bytes),您还会看到 mode 也不可用

因此,正如您已经发现的那样,您可以对这些 pathlib 类使用 mode 的唯一方法是使用open方法,即:

with my_path.open("a") as f:
    f.write("...")

这是设计使然,这样 pathlib 类就变得非常“干净”。此外,上面的代码片段已经是规范的,因此无法进一步简化。您可以在上下文管理器之外使用open方法:

f = my_path.open("a")
f.write("...")
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐