【问题标题】:How to check if directory contains another directory named"xyz" in python?python - 如何检查目录是否包含另一个名为“xyz”的目录?
【发布时间】:2021-05-13 19:30:12
【问题描述】:
【问题讨论】:
标签:
python
python-3.x
directory
python-os
【解决方案1】:
对于路径中的每个项目(文件夹/文件),它会检查其名称是否为 xyz。
import os
path =r'C:\Users'
for path in os.listdir(path):
if path=='xyz':
print(True)
break
将路径替换为您当前的目录位置。
【解决方案2】:
试试pathlib:
from pathlib import Path
inp_path = Path('.') # specify the path in path constructor
dir_to_search = 'xyz'
def search_for_file(inp_path, dir_to_search):
return any(
file.is_dir() and file.name == dir_to_search
for file in inp_path.glob('**/*')
)
search_for_file(inp_path, dir_to_search) # this function will look for all the subdirectories.
HOW IT WORKS:
上面的函数使用glob将路径中的每个文件/目录一一生成,然后通过file.is_dir检查文件是否为目录。如果是,则通过file.name 提取名称并将其与dir_to_search 进行比较。如果结果是True - any 函数将检测它并返回值True 否则False。
【解决方案3】:
你可以用操作系统来做这件事
file_path = "your directory"
import os
arr = list(map(lambda x: x.split('.')[0], os.listdir(file_path)))
# to cast: "file.text" to "file"
if 'xyz' in arr:
...
【解决方案4】:
您可以使用 os.walk(),将下面的“目录路径”替换为...以及您要检查的目录路径
for dirname, subdir, filename in os.walk("path of directory"):
if "xyz" in subdir:
print("yes")
break # to prevent unnecessarily checking more paths
else:
print("no")
注意:这也会检查子目录