2017-06-07 18 views
0

你们知道更聪明的方法吗?Python-多个os.path.split()

os.path.split(os.path.split(os.path.split(os.getcwd())[0])[0])[0] 

os.getcwd()就例如:

/my/path/to/my/directory 

我应该得到

/my/path/ 

实际上这也就是os.path.split这样的exageration和重复()AHAH

谢谢,

+0

为什么不在调用'os.getcwd()'后尝试一个正则表达式? – CryptoCat

+3

您是否听说过['os.path.dirname'](https://docs.python.org/2/library/os.path.html#os.path.dirname)? – user2357112

+0

@ user2357112当然,他有,因为它在他使用的功能的文档中提到... –

回答

1

我会建议你用os.sep

os.sep.join(os.getcwd().split(os.sep)[:-3])

+0

看起来很复杂,但效果很好! –

1

您可以使用pathlib

from pathlib import Path 
path = Path('/my/path/to/my/directory').parents[2] 
print(path) 

>>> /my/path 

对于Python 3.4的,pathlib是标准库的一部分,但你可以在早期版本的安装

PIP安装pathlib

+0

工作正常,但你必须下载pathlib。 它已经在您的网站包? –

+0

@MathieuChâteauvert我刚刚更新了我的答案和这些信息 – Wondercricket