这个问题其实很简单,但我想知道是否有一种特别优雅的方式可以解决它,我忽略了它。从路径剥离文件名(但仅当路径指向文件时)
考虑我得到一个可以指向目录或文件的路径(例如从用户通过控制台输入),例如,以下
/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'的原因,因为它的确如此...... –