Hướng dẫn how do you find subdirectories in python? - làm thế nào để bạn tìm thấy các thư mục con trong python?

Bài đăng này sẽ thảo luận về cách liệt kê tất cả các thư mục con trong một thư mục trong Python.

1. Sử dụng hàm os.listdir()

Một giải pháp đơn giản để liệt kê tất cả các thư mục con trong một thư mục là sử dụng hàm os.listdir(). Tuy nhiên, điều này trả về danh sách tất cả các tệp và thư mục con trong thư mục gốc. Bạn có thể lọc danh sách được trả về bằng hàm os.path.isdir() để chỉ liệt kê các thư mục con.

Nhập khẩuos

rootdir='path/to/dir'='path/to/dir'

forfileinos.listdir(rootdir):file inos.listdir(rootdir):

    d=os.path.join(rootdir,file)d=os.path.join(rootdir,file)

    ifos.path.isdir(d):ifos.path.isdir(d):

        print(d)print(d)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:
You can easily extend the solution to search within subdirectories as well, as shown below:

Nhập khẩuos

deflistdirs(rootdir):listdirs(rootdir):

    forfileinos.listdir(rootdir):forfileinos.listdir(rootdir):

        d=os.path.join(rootdir,file)d=os.path.join(rootdir, file)

        ifos.path.isdir(d):if os.path.isdir(d):

            print(d)print(d)

            listdirs(d)listdirs(d)

rootdir='path/to/dir' ='path/to/dir'

listdirs(rootdir)(rootdir)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:

2. Sử dụng hàm os.scandir()

Nhập khẩuos

rootdir='path/to/dir'='path/to/dir'

Tải xuống mãit inos.scandir(rootdir):

    ifit.is_dir():ifit.is_dir():

        print(it.path)print(it.path)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:
You can easily make the above code recursive to enable search within subdirectories:

Nhập khẩuos

deflistdirs(rootdir):listdirs(rootdir):

Tải xuống mãforit inos.scandir(rootdir):

        ifit.is_dir():ifit.is_dir():

            print(it.path)print(it.path)

            listdirs(it)listdirs(it)

rootdir='path/to/dir'='path/to/dir'

listdirs(rootdir)(rootdir)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:

2. Sử dụng hàm os.scandir()

Với Python 3.5, bạn có thể sử dụng chức năng os.scandir(), cung cấp hiệu suất tốt hơn đáng kể so với os.listdir(). Nó trả về các mục nhập thư mục cùng với thông tin thuộc tính tệp. Để lọc các mục được trả về để loại trừ các tệp, hãy gọi hàm is_dir(), trả về True nếu mục nhập hiện tại là thư mục hoặc liên kết tượng trưng chỉ vào thư mục.pathlib importPath

rootdir='path/to/dir'='path/to/dir'

Forit inos.Scandir (rootDir):path in Path(rootdir).iterdir():

    ifpath.is_dir():if path.is_dir():

        print(path)print(path)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:
Here’s the recursive version, which also searches within the subdirectories:

Với Python 3.5, bạn có thể sử dụng chức năng os.scandir(), cung cấp hiệu suất tốt hơn đáng kể so với os.listdir(). Nó trả về các mục nhập thư mục cùng với thông tin thuộc tính tệp. Để lọc các mục được trả về để loại trừ các tệp, hãy gọi hàm is_dir(), trả về True nếu mục nhập hiện tại là thư mục hoặc liên kết tượng trưng chỉ vào thư mục.pathlib importPath

deflistdirs(rootdir): listdirs(rootdir):

Forit inos.Scandir (rootDir):forpath in Path(rootdir).iterdir():

        ifpath.is_dir():ifpath.is_dir():

            print(path)print(path)

            listdirs(path)listdirs(path)

rootdir='path/to/dir'='path/to/dir'

listdirs(rootdir)(rootdir)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:

2. Sử dụng hàm os.scandir()

Nhập khẩuos

rootdir='path/to/dir'='path/to/dir'

Tải xuống mã rootdir,dirs,files in os.walk(rootdir):

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:forsubdir indirs:

        print(os.path.join(rootdir,subdir))print(os.path.join(rootdir,subdir))

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:

2. Sử dụng hàm os.scandir()

Với Python 3.5, bạn có thể sử dụng chức năng os.scandir(), cung cấp hiệu suất tốt hơn đáng kể so với os.listdir(). Nó trả về các mục nhập thư mục cùng với thông tin thuộc tính tệp. Để lọc các mục được trả về để loại trừ các tệp, hãy gọi hàm is_dir(), trả về True nếu mục nhập hiện tại là thư mục hoặc liên kết tượng trưng chỉ vào thư mục.glob

rootdir='path/to/dir'='path/to/dir'

Forit inos.Scandir (rootDir):path inglob.glob(f'{rootdir}/*/'):

    print(path)print(path)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:
Python 3.5 extended support for recursive globs using os.path.isdir()0 to search subdirectories and symbolic links to directories.

Với Python 3.5, bạn có thể sử dụng chức năng os.scandir(), cung cấp hiệu suất tốt hơn đáng kể so với os.listdir(). Nó trả về các mục nhập thư mục cùng với thông tin thuộc tính tệp. Để lọc các mục được trả về để loại trừ các tệp, hãy gọi hàm is_dir(), trả về True nếu mục nhập hiện tại là thư mục hoặc liên kết tượng trưng chỉ vào thư mục.glob

rootdir='path/to/dir'='path/to/dir'

Forit inos.Scandir (rootDir):path inglob.glob(f'{rootdir}/*/**/', recursive=True):

    print(path)print(path)

Tải xuống mã

& nbsp; Bạn cũng có thể dễ dàng mở rộng giải pháp để tìm kiếm trong các thư mục con, như được hiển thị bên dưới:

Làm cách nào để tìm thư mục phụ trong Python?

Để có được một danh sách tất cả các thư mục con trong một thư mục, theo cách đệ quy, bạn có thể sử dụng chức năng OS.WALK. Nó trả về ba tuple với mục đầu tiên là tất cả các thư mục con. Bạn cũng có thể liệt kê các thư mục (chỉ ngay lập tức) bằng hệ điều hành.use the os. walk function. It returns a three tuple with first entry being all the subdirectories. You can also list the directories(immediate only) using the os.

Làm cách nào để in một danh sách thư mục trong Python?

Sử dụng hệ điều hành ...
đường dẫn = '.'Đường dẫn tệp ngay lập tức ..
Thư mục_contents = OS.ListDir (đường dẫn).
print(directory_contents).
Đối với mục trong thư mục_contents: Bộ lọc cho các thư mục ..
Nếu hệ điều hành.đường dẫn.ISDIR (Mục):.
print(item).

Làm cách nào để liệt kê tất cả các thư mục con trong một thư mục?

Mở tệp Explorer trong Windows.....
Nhấp vào thanh địa chỉ và thay thế đường dẫn tệp bằng cách nhập CMD sau đó nhấn Enter ..
Điều này sẽ mở một lời nhắc lệnh màu đen và trắng hiển thị đường dẫn tệp trên ..
Loại dir /a: d.....
Bây giờ nên có một tệp văn bản mới gọi là danh sách thư mục trong thư mục trên ..

Làm thế nào để tôi tìm thấy số lượng thư mục con trong một thư mục?

Sử dụng lệnh LS.Lệnh LS liệt kê các thư mục và tệp có trong một thư mục.Lệnh LS với các tùy chọn -LR hiển thị danh sách (ở định dạng dài) của các hướng dẫn phụ trong thư mục hiện tại đệ quy.Sau đó, chúng tôi sử dụng lệnh grep để tìm kiếm một chuỗi hoặc mẫu trong đầu vào.. The ls command lists the directories and files contained in a directory. The ls command with the -lR options displays the list (in long format) of the sub-directories in the current directory recursively. Then, we use the grep command to search for a string or pattern in the input.