Я пытаюсь найти расширение файла, учитывая его имя как строку. Я знаю, что могу использовать функцию os.path.splitext
, но она не работает так, как ожидалось, в случае, если расширение моего файла равно .tar.gz
или .tar.bz2
, поскольку оно дает расширения как gz
и bz2
вместо tar.gz
и tar.bz2
соответственно.
Поэтому я решил найти расширение файлов самостоятельно, используя сопоставление с образцом.
print re.compile(r'^.*[.](?P<ext>tar\.gz|tar\.bz2|\w+)$').match('a.tar.gz')group('ext')
>>> gz # I want this to come as 'tar.gz'
print re.compile(r'^.*[.](?P<ext>tar\.gz|tar\.bz2|\w+)$').match('a.tar.bz2')group('ext')
>>> bz2 # I want this to come 'tar.bz2'
Я использую (?P<ext>...)
в моем сопоставлении с образцом, так как я также хочу получить расширение.
Пожалуйста, помогите.