簡體   English   中英

如何在Python中查找兩個目錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM