I get not liking the "clever" overloading of the division operator. Luckily, you don't have to use it - you can pass a full path as a single string, or a list of strings, and it will Do The Right Thing:
>>> Path("/usr", "lib", "grub")
PosixPath('/usr/lib/grub')
>>> Path("/usr/lib/grub")
PosixPath('/usr/lib/grub')
pathlib is nice because it gives some better, high-level abstractions. Things like `path.relative_to(other_path)` are very natural to read.
[...]
Having the whole hierarchy from your path up to the root in `path.parents` is extremely handy to iterate over. The path parts attributes like .stem, .name, .suffixes etc make for very readable code.
And IMHO, code like `path.is_relative_to(other_path)` is simply more readable than`os.path.is_relative_to(path, otherpath)`.