VOOZH about

URL: https://www.geeksforgeeks.org/python/python-os-direntry-is_file-method/

⇱ os.DirEntry.is_file() method - Python - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

os.DirEntry.is_file() method - Python

Last Updated : 11 Jul, 2025

os.DirEntry.is_file() method checks if a directory entry is a regular file. It is used with entries returned by os.scandir(). This method is faster than other file checks because it uses cached system information. It also accepts an optional follow_symlinks parameter that determines whether to follow symbolic links when checking. We use the following folder structure in the example below:

.

β”œβ”€β”€ example.py

β”œβ”€β”€ sample.txt

β”œβ”€β”€ some_dir/

└── link_to_file -> example.py (symbolic link)

Example:

Output

example.py is a file
sample.txt is a file

Explanation: os.scandir('.') iterates over current directory entries. For each entry e, e.is_file(follow_symlinks=False) checks if it’s a file without following symlinks, then prints its name with a corresponding label.

Syntax of os.DirEntry.is_file()

DirEntry.is_file(follow_symlinks=True)

Parameters: follow_symlinks (bool, optional, default=True) determines whether to follow symbolic links when checking if the entry is a file.

  • If True, the method follows symlinks and returns True if the target is a file.
  • If False, it checks the entry itself without following the symlink.

Return Value: It returns True if the entry (or its symlink target, depending on follow_symlinks) is a file; otherwise, returns False.

Examples

Example 1: This example shows how to check if each entry itself is a file without following symbolic links.

Output

example.py: file (no symlink)
sample.txt: file (no symlink)
some_dir: not a file or symlink target
link_to_file: not a file or symlink target

Example 2: This example combines is_file() with stat() to get file size and is_dir() to identify directories.

Output

example.py is a file of size 2048 bytes
sample.txt is a file of size 1024 bytes
docs is a directory

Explanation: e.is_file() follows symlinks by default. For files, it gets the size via cached e.stat().st_size and prints the name with size. For directories, it prints the name.

Example 3: This example defines a recursive function to list all files in a directory and its subdirectories.

Output

./example.py
./sample.txt
./docs/readme.md
./docs/tutorial.pdf

Explanation: fun(p) recursively scans the directory p using os.scandir(p). For each entry e, if it’s a file, it prints the full path e.path. If it’s a directory, the function calls itself recursively to traverse deeper.

Comment
Article Tags: