0
0
PythonHow-ToBeginner · 3 min read

How to Get File Permissions in Python: Simple Guide

You can get file permissions in Python using the os.stat() function combined with the stat module. This returns the file's mode, which you can interpret to see read, write, and execute permissions.
📐

Syntax

Use os.stat(path) to get file status, then use stat.S_IMODE() to extract permission bits.

  • os.stat(path): Returns file info including mode.
  • stat.S_IMODE(mode): Extracts permission bits from mode.
python
import os
import stat

file_info = os.stat('filename.txt')
permissions = stat.S_IMODE(file_info.st_mode)
print(oct(permissions))
💻

Example

This example shows how to get and print the permissions of a file in octal format, which is the common way to represent permissions like 0o644.

python
import os
import stat

filename = 'example.txt'

# Create the file for demonstration
with open(filename, 'w') as f:
    f.write('Hello')

# Get file status
file_info = os.stat(filename)

# Extract permission bits
permissions = stat.S_IMODE(file_info.st_mode)

# Print permissions in octal
print(f'Permissions for {filename}: {oct(permissions)}')
Output
Permissions for example.txt: 0o644
⚠️

Common Pitfalls

One common mistake is to directly print st_mode without extracting permission bits, which includes extra info like file type.

Another is forgetting to import the stat module or using incorrect functions.

python
import os

filename = 'example.txt'
file_info = os.stat(filename)

# Wrong: prints full mode including file type bits
print(file_info.st_mode)

# Right: extract permission bits
import stat
permissions = stat.S_IMODE(file_info.st_mode)
print(oct(permissions))
Output
33206 0o644
📊

Quick Reference

FunctionDescription
os.stat(path)Get file status including mode
stat.S_IMODE(mode)Extract permission bits from mode
oct(number)Convert number to octal string for permissions
st_modeFile mode including type and permissions

Key Takeaways

Use os.stat() to get file info and stat.S_IMODE() to get permission bits.
File permissions are best shown in octal format like 0o644.
Do not use st_mode directly without extracting permissions.
Always import the stat module to work with file modes.
Permissions include read, write, and execute bits for user, group, and others.