使用 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/