python - 如何使用 Python pathlib 更改目录

标签 python pathlib

使用 Python pathlib 更改目录的预期方法是什么 (Documentation)功能?

假设我创建了一个 Path 对象,如下所示:

from pathlib import Path
path = Path('/etc')

目前我只知道以下内容,但这似乎破坏了pathlib的想法。

import os
os.chdir(str(path))

最佳答案

根据评论,我意识到 pathlib 无助于更改目录,应尽可能避免目录更改。

因为我需要从正确的目录调用 Python 之外的 bash 脚本,所以我选择使用上下文管理器来更清晰地更改目录,类似于 answer :

import os
import contextlib
from pathlib import Path

@contextlib.contextmanager
def working_directory(path):
    """Changes working directory and returns to previous on exit."""
    prev_cwd = Path.cwd()
    os.chdir(path)
    try:
        yield
    finally:
        os.chdir(prev_cwd)

一个好的替代方法是使用subprocess.Popen 类的cwd 参数,如answer 中所示。 .

如果你使用的是 Python <3.6 并且 path 实际上是一个 pathlib.Path,你需要 str(path)chdir 语句。

关于python - 如何使用 Python pathlib 更改目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41742317/

相关文章:

python - 同一目录中模块的绝对导入

python - 具有 Maxpooling1D 和 channel_first 的 Keras 模型

python - 如何修改 `pathlib.Path` 的行为?

python - 对象不在正确的状态;哪个异常(exception)是合适的?

python - Pydub from_mp3 给出 [Errno 2] No such file or directory

python - 拆分汇总数据并重新汇总

python - 是否有用于在另一条路径中查找一条路径的补充的 pathlib 方法?

python - 在unix中查找文件的真实路径

python - pathlib 的 `glob` 方法的顺序在运行之间是否一致?

python-3.x - 如何测试对象是否为pathlib路径?