os-stat (PTH116)
Derived from the flake8-use-pathlib linter.
What it does
Checks for uses of os.stat
.
Why is this bad?
pathlib
offers a high-level API for path manipulation, as compared to
the lower-level API offered by os
. When possible, using Path
object
methods such as Path.stat()
can improve readability over the os
module's counterparts (e.g., os.path.stat()
).
Note that os
functions may be preferable if performance is a concern,
e.g., in hot loops.
Examples
import os
from pwd import getpwuid
from grp import getgrgid
stat = os.stat(file_name)
owner_name = getpwuid(stat.st_uid).pw_name
group_name = getgrgid(stat.st_gid).gr_name
Use instead:
from pathlib import Path
file_path = Path(file_name)
stat = file_path.stat()
owner_name = file_path.owner()
group_name = file_path.group()