2024-06-16 10:28:49 发布
网友
有没有办法从给定的目录中获得一个高于或低于目录的级别? 例如,在函数中输入了“/a/b/c/”目录。
所以函数将返回:
lvl_down = '/a/b/' lvl_up = '/a/b/c/d/'
我认为您可以使用're'模块(至少在目录下有一个级别)来完成它,但是也许有更简单更好的方法来完成它而不使用regex?
我不知道,函数应该如何知道,您想进入目录d:
#!/usr/bin/python import os.path def lvl_down(path): return os.path.split(path)[0] def lvl_up(path, up_dir): return os.path.join(path, up_dir) print(lvl_down('a/b/c')) # prints a/b print(lvl_up('a/b/c','d')) # prints a/b/c/d
注意:以前有另一个解决方案,但是os.path是一个更好的解决方案。
首先,如果给定的路径以斜线结尾,则应始终使用切片将其移除。话虽如此,以下是如何获取路径的父目录:
>>> import os.path >>> p = '/usr/local' >>> os.path.dirname(p) '/usr'
向下,只需将名称附加到变量,如下所示:
>>> head = '/usr/local' >>> rest = 'include' >>> os.path.join(head, rest) '/usr/local/include'
操作路径的方法可以在模块os和os.path中找到。
os
os.path
os.path.join-智能地连接一个或多个路径组件。
os.path.split-将路径名路径分成一对,(head, tail),其中tail是最后一个路径名组件,而head是导致这一点的所有因素。
(head, tail)
os.path.isdir-如果路径是现有目录,则返回True。
os.listdir-返回一个列表,其中包含由path给定的目录中条目的名称。
def parentDir(dir): return os.path.split(dir)[0] def childDirs(dir): possibleChildren = [os.path.join(dir, file) for file in os.listdir(dir)] return [file for file in possibleChildren if os.path.isdir(file)]
我不知道,函数应该如何知道,您想进入目录d:
注意:以前有另一个解决方案,但是os.path是一个更好的解决方案。
首先,如果给定的路径以斜线结尾,则应始终使用切片将其移除。话虽如此,以下是如何获取路径的父目录:
向下,只需将名称附加到变量,如下所示:
操作路径的方法可以在模块
os
和os.path
中找到。os.path.join-智能地连接一个或多个路径组件。
os.path.split-将路径名路径分成一对,
(head, tail)
,其中tail是最后一个路径名组件,而head是导致这一点的所有因素。os.path.isdir-如果路径是现有目录,则返回True。
os.listdir-返回一个列表,其中包含由path给定的目录中条目的名称。
相关问题 更多 >
编程相关推荐