Home  >  Article  >  Backend Development  >  How to List a Directory Tree in Python using os.walk?

How to List a Directory Tree in Python using os.walk?

Susan Sarandon
Susan SarandonOriginal
2024-10-30 22:23:02652browse

How to List a Directory Tree in Python using os.walk?

Listing a Directory Tree in Python

Manipulating files and directories is a common task in programming. In Python, it's easy to get a list of all files and directories in a given directory using the os.walk function.

Getting Files and Directories with os.walk

The os.walk function takes a directory path as input and returns a generator object that yields a tuple for each directory it encounters. The tuple contains three elements:

  • dirname: The path of the current directory.
  • dirnames: A list of subdirectories in the current directory.
  • filenames: A list of files in the current directory.

Here's an example of how to use os.walk to list a directory tree:

<code class="python">import os

for dirname, dirnames, filenames in os.walk('.'):
    # Print path to all subdirectories first.
    for subdirname in dirnames:
        print(os.path.join(dirname, subdirname))

    # Print path to all filenames.
    for filename in filenames:
        print(os.path.join(dirname, filename))</code>

This code will traverse the directory tree starting from the current directory (represented by '.') and print the path to every subdirectory and file it encounters.

Advanced Usage

The os.walk function also allows you to control how it traverses the directory tree. For example, you can edit the dirnames list during the iteration to stop os.walk from recursing into certain directories.

In the example below, the code avoids recursing into any directories named .git:

<code class="python">if '.git' in dirnames:
    # Don't go into any .git directories.
    dirnames.remove('.git')</code>

This versatility makes os.walk a powerful tool for working with directory trees in Python.

The above is the detailed content of How to List a Directory Tree in Python using os.walk?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn