История изменений
Исправление
Psych218,
(текущая версия)
:
Принимается.
Тогда хотя бы так:
def strip_suffixes(path):
EXTS = (".xz", ".raw", ".tar")
while any(path.endswith(x) for x in EXTS):
path = os.path.splitext(path)[0]
return path
Вообще по уму, оно ещё и делает не то, как называется. Получается лапша — видя где-нибудь strip_suffixes(path), думаешь, что оно любые расширения отсекает, приходится лезть в код фукнции, чтобы узнать какие. Эти суффиксы бы не внутри задавать хорошо. Как-нибудь так:
def strip_suffixes(path, *suffixes):
filename, ext = os.path.splitext(path)
if ext not in suffixes:
return path
return strip_suffixes(filename, *suffixes)
Ну или без рекурсии через while по вкусу:
def strip_suffixes(path, *exts):
while any(path.endswith(x) for x in exts):
path = os.path.splitext(path)[0]
return path
И вызывать соответственно как strip_suffixes(path, ".tar", ".xz", ".raw")
. Было бы гораздо логичнее.
Исправление
Psych218,
:
Принимается.
Тогда хотя бы так:
def strip_suffixes(path):
EXTS = (".xz", ".raw", ".tar")
while any(path.endswith(x) for x in EXTS):
path = os.path.splitext(path)[0]
return path
Вообще по уму, оно ещё и делает не то, как называется. Получается лапша — видя где-нибудь strip_suffixes(path), думаешь, что оно любые расширения отсекает, приходится лезть в код фукнции, чтобы узнать какие. Эти суффиксы бы не внутри задавать хорошо. Как-нибудь так:
def strip_suffixes(path, *suffixes):
filename, ext = os.path.splitext(path)
if ext not in suffixes:
return path
return strip_suffixes(filename, *suffixes)
Ну или без рекурсии через while по вкусу. И вызывать соответственно как strip_suffixes(path, ".tar", ".xz", ".raw")
. Было бы гораздо логичнее.
Исправление
Psych218,
:
Принимается.
Тогда хотя бы так:
def strip_suffixes(path):
EXTS = (".xz", ".raw", ".tar")
t = path
while any(t.endswith(x) for x in EXTS):
t = os.path.splitext(t)[0]
return t
Вообще по уму, оно ещё и делает не то, как называется. Получается лапша — видя где-нибудь strip_suffixes(path), думаешь, что оно любые расширения отсекает, приходится лезть в код фукнции, чтобы узнать какие. Эти суффиксы бы не внутри задавать хорошо. Как-нибудь так:
def strip_suffixes(path, *suffixes):
filename, ext = os.path.splitext(path)
if ext not in suffixes:
return path
return strip_suffixes(filename, *suffixes)
Ну или без рекурсии через while по вкусу. И вызывать соответственно как strip_suffixes(path, ".tar", ".xz", ".raw")
. Было бы гораздо логичнее.
Исходная версия
Psych218,
:
Принимается.
Тогда хотя бы так:
def strip_suffixes(path):
EXTS = (".xz", ".raw", "tar")
t = path
while any(t.endswith(x) for x in EXTS):
t = os.path.splitext(t)[0]
return t
Вообще по уму, оно ещё и делает не то, как называется. Получается лапша — видя где-нибудь strip_suffixes(path), думаешь, что оно любые расширения отсекает, приходится лезть в код фукнции, чтобы узнать какие. Эти суффиксы бы не внутри задавать хорошо. Как-нибудь так:
def strip_suffixes(path, *suffixes):
filename, ext = os.path.splitext(path)
if ext not in suffixes:
return path
return strip_suffixes(filename, *suffixes)
Ну или без рекурсии через while по вкусу. И вызывать соответственно как strip_suffixes(path, ".tar", ".xz", ".raw")
. Было бы гораздо логичнее.