本质上,我想知道这个问题的最佳答案是否可以在 Python 中实现。我正在查看模块 os、os.path 和 shutil,但我还没有找到一个简单的等价物,尽管我认为我只是缺少一些简单的东西。
更具体地说,假设我有一个目录 A,目录 A 内是任何其他目录。我可以调用os.walk('path/to/A')并检查是否dirnames为空,但我不想让程序遍历以 A 为根的整个树;即我正在寻找的应该停止并在找到子目录后立即返回 true。
为清楚起见,在包含文件但没有目录的目录上,可接受的解决方案将返回 False。
也许你想要
def folders_in(path_to_parent):
for fname in os.path.listdir(path_to_parent):
if os.path.isdir(os.path.join(path_to_parent,fname)):
yield os.path.join(path_to_parent,fname)
print(list(folders_in("/path/to/parent")))
Run Code Online (Sandbox Code Playgroud)
这将返回所有子目录的列表......如果它是空的,那么没有子目录
或在一行
set([os.path.dirname(p) for p in glob.glob("/path/to/parent/*/*")])
Run Code Online (Sandbox Code Playgroud)
尽管对于要使用此方法计算的子目录,它必须包含一些文件
或操纵步行
def subfolders(path_to_parent):
try:
return next(os.walk(path_to_parent))[1]
except StopIteration:
return []
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8592 次 |
| 最近记录: |