jra*_*amm 61 python directory operating-system path
好的...我不知道模块在哪里x,但我知道我需要获得目录两级的路径.
那么,是否有更优雅的方式:
import os
two_up = os.path.dirname(os.path.dirname(__file__))
Run Code Online (Sandbox Code Playgroud)
欢迎使用Python 2和3的解决方案!
Ffi*_*ydd 79
你可以用pathlib.不幸的是,这仅适用于Python 3.4的stdlib.如果您有旧版本,则必须在此处安装PyPI副本.这应该很容易使用pip.
from pathlib import Path
p = Path(__file__).parents[1]
print(p)
# /absolute/path/to/two/levels/up
Run Code Online (Sandbox Code Playgroud)
这使用parents提供对父目录的访问的序列并选择第二个.
请注意,p在这种情况下,将是某种形式的Path对象,具有自己的方法.如果您需要将路径作为字符串,那么您可以调用str它们.
Seb*_*020 35
很容易:
这是你想要的:
import os.path as path
two_up = path.abspath(path.join(__file__ ,"../.."))
Run Code Online (Sandbox Code Playgroud)
关心Sebi
and*_*sit 20
我打算添加它只是为了愚蠢,但也因为它向新手展示了混叠函数和/或导入的潜在用途.
写完之后,我认为这段代码比其他日期答案更具可读性(即掌握意图的时间更短),可读性(通常)是王道.
from os.path import dirname as up
two_up = up(up(__file__))
Run Code Online (Sandbox Code Playgroud)
注意:如果您的模块非常小或具有上下文的内聚性,那么您只想做这种事情.
要获得目录2级别:
import os.path as path
two_up = path.abspath(path.join(os.getcwd(),"../.."))
Run Code Online (Sandbox Code Playgroud)
从任何目录执行时,最佳解决方案(对于python> = 3.4)是:
from pathlib import Path
two_up = Path(__file__).resolve().parents[1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68027 次 |
| 最近记录: |