使用 Python pathlib
(文档) 功能更改目录的预期方法是什么?
假设我创建了一个 Path
对象,如下所示:
from pathlib import Path
path = Path('/etc')
目前我只知道以下内容,但这似乎破坏了 pathlib
的想法。
import os
os.chdir(str(path))
原文由 Lukas 发布,翻译遵循 CC BY-SA 4.0 许可协议
在Python 3.6或以上版本中, os.chdir()
可以直接处理 Path
对象。事实上, Path
对象可以替代标准库中的大多数 str
路径。
操作系统。 chdir (path) 将当前工作目录更改为path。
该函数可以支持指定文件描述符。描述符必须引用打开的目录,而不是打开的文件。
3.3 新版功能:在某些平台上添加了对将路径指定为文件描述符的支持。
在 3.6 版更改: Accepts a path-like object 。
import os
from pathlib import Path
path = Path('/etc')
os.chdir(path)
这可能有助于将来不必与 3.5 或更低版本兼容的项目。
原文由 Yan QiDong 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答873 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
根据评论,我意识到
pathlib
无助于更改目录,应尽可能避免目录更改。由于我需要从正确的目录调用 Python 外部的 bash 脚本,因此我选择使用上下文管理器来更简洁地更改目录,类似于此 答案:
一个好的替代方法是使用
cwd
参数subprocess.Popen
类中的这个 答案。If you are using Python <3.6 and
path
is actually apathlib.Path
, you needstr(path)
in thechdir
statements.