Directory में Subdirectories Check करना
यह Check करने के लिए कि कोई Directory किसी अन्य Directory को Contains करती है या नहीं, Simply Reverse Check करें, यानी Check करें कि क्या इसमें कोई Entry है जो File नहीं है isfile Method का उपयोग करके।
उदाहरण 1: Loop का उपयोग करके
import os
list_dir = os.listdir('.')
for f in list_dir:
if not os.path.isfile(os.path.join('.', f)):
print("Not a file - यह एक Directory है")
उदाहरण 2: all() Built-in का उपयोग करके
import os
list_dir = [os.path.isfile(os.path.join('.', f)) for f in os.listdir('.')]
print(all(list_dir))
all Function तभी True Return करेगा जब Given Directory में सभी Entries Files हों। यदि कोई Directory है, तो False Return करेगा।
अधिक Explicit Version:
import os
def has_subdirectories(path='.'):
"""Check करें कि Path में कोई Subdirectory है या नहीं"""
for entry in os.listdir(path):
full_path = os.path.join(path, entry)
if os.path.isdir(full_path):
return True
return False
# उपयोग
if has_subdirectories('.'):
print("Directory में Subdirectories हैं")
else:
print("Directory में कोई Subdirectory नहीं है")
Pathlib का उपयोग (Python 3.4+):
from pathlib import Path
def has_subdirectories(path='.'):
return any(item.is_dir() for item in Path(path).iterdir())
# या One-liner
has_dirs = any(item.is_dir() for item in Path('.').iterdir())