這個問題其實很簡單,但我想知道是否有一種特別優雅的方式可以解決它,我忽略了它。從路徑剝離文件名(但僅當路徑指向文件時)
考慮我得到一個可以指向目錄或文件的路徑(例如從用戶通過控制檯輸入),例如,以下
/directory1/directory2/file.txt
/directory1/directory2
現在我想寫除掉從路徑結束一個潛在的文件名代碼之一,但不目錄名,所以,在例如兩個路徑將減少到/directory1/directory2
。
- 我認爲
os.path.dirname
,但始終除掉最後一個路徑組件,即使它是一個目錄 - 顯而易見的解決方案是使用
os.path.isdir
或os.path.isfile
和鋼帶有條件 - 我想知道:是否有更短的版本可用,如
os.path.closest_dirname
?
什麼可能的錯誤我這裏有點是os.path.dirname
不不返回最接近的目錄,而是將始終返回上一級目錄(即作品更像os.path.parentdir
)
是保證有一個'.format'在文件名結束? – PYA
[This answer](https://stackoverflow.com/questions/7781545/how-to-get-all-folder-only-in-a-given-path-in-python)可能有幫助 –
@Prith:不,我只是爲了清楚而添加它(所以很明顯它意味着一個文件)。我認爲只有在查看名稱時模糊纔是'os.path.dirname'的原因,因爲它的確如此...... –