os-path-splitext (PTH122)
Derived from the flake8-use-pathlib linter.
What it does
Checks for uses of os.path.splitext
.
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.suffix
and Path.stem
can improve readability over
the os
module's counterparts (e.g., os.path.splitext()
).
os.path.splitext()
specifically returns a tuple of the file root and
extension (e.g., given splitext('/foo/bar.py')
, os.path.splitext()
returns ("foo/bar", ".py")
. These outputs can be reconstructed through a
combination of Path.suffix
(".py"
), Path.stem
("bar"
), and
Path.parent
("foo"
).
Note that os
functions may be preferable if performance is a concern,
e.g., in hot loops.
Examples
Use instead: