os.extsep
определяется путем импорта os.path.extsep
. Но вы правы, os.path.splitext()
всегда использует .
, независимо от os.path.extsep
:
С os.py
(3.2.2):
from os.path import (curdir, pardir, sep, pathsep, defpath, extsep, altsep,
devnull)
С ntpath.py
(который становится os.path
)
extsep = '.'
[...]
def _get_dot(path):
if isinstance(path, bytes):
return b'.'
else:
return '.' # instead of return extsep! [Comment by me, not in source]
[...]
def splitext(p):
return genericpath._splitext(p, _get_sep(p), _get_altsep(p),
_get_dot(p))
Также от genericpath.py
:
def _get_dot(path):
if isinstance(path, bytes):
return b'.'
else:
return '.'
Таким образом, os.path()
фактически определяет разделитель расширения дважды.
Теперь это, вероятно, не имеет значения, потому что в ближайшее время оно не изменится (в любом случае, оно одинаково на всех поддерживаемых платформах). Но в некотором смысле это нарушает принцип СУХОЙ.