[英]How to look up two directories in Python?
我知道要进入父目录,你应该使用
parentname = os.path.abspath(os.path.join(yourpath, os.path.pardir))
但是,如果我想获取几个文件夹的目录名称怎么办?
说我给了/ stuff / home / blah / pictures / myaccount / album,我想得到“myaccount”和“album”的最后两个文件夹的名称(不是路径,只是名字)在我的脚本。 我怎么做?
看起来没有什么特别优雅的东西,但这应该可以解决问题:
>>> yourpath = "/stuff/home/blah/pictures/myaccount/album"
>>> import os.path
>>> yourpath = os.path.abspath(yourpath)
>>> (npath, d1) = os.path.split(yourpath)
>>> (npath, d2) = os.path.split(npath)
>>> print d1
album
>>> print d2
myaccount
请记住,如果提供的路径以尾部斜杠结尾, os.path.split
将为第二个组件返回一个空字符串,因此如果您不以其他方式验证格式,则可能需要确保先将其删除。提供的路径。
如何将路径拆分为列表并获取最后两个元素?
>>> import os
>>> path_str = ' /stuff/home/blah/pictures/myaccount/album'
>>> path_str.split(os.sep)
[' ', 'stuff', 'home', 'blah', 'pictures', 'myaccount', 'album']
对于相对路径如.
和..
, os.path.abspath()
可用于预处理路径字符串。
>>> import os
>>> path_str = os.path.abspath('.')
>>> path_str.split(os.sep)
['', 'tmp', 'foo', 'bar', 'foobar']
>>> p='/stuff/home/blah/pictures/myaccount/album'
>>> os.path.abspath(p).split(os.sep)[-1]
'album'
>>> os.path.abspath(p).split(os.sep)[-2]
'myaccount'
>>> os.path.abspath(p).split(os.sep)[-3]
'pictures'
>>> os.path.abspath(p).split(os.sep)[-4]
'blah'
等等...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.