Получение расширения файла используя сопоставление с образцом в python

Я пытаюсь найти расширение файла, учитывая его имя в виде строки. Я знаю, что могу использовать функцию 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 ...) в сопоставлении с образцом, так как я также хочу получить расширение.

Пожалуйста, помогите.

5
задан Pushpak Dagade 29 June 2011 в 18:16
поделиться