Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Определение расширения файла в python

#python #python_3x


Как в python сделать максимально правильно проверку на расширения файла ? Скажем,
ко мне попадает имя файла и я хочу сделать проверку на то, является ли его расширения
.py или нет.
    


Ответы

Ответ 1



Используйте os.path.splitext: >>> import os >>> filename, file_extension = os.path.splitext('/path/to/somefile.ext') >>> filename '/path/to/somefile' >>> file_extension '.ext'

Ответ 2



ко мне попадает имя файла и я хочу сделать проверку на то, является ли его расширения .py filename.endswith('.py') метод возвращает оканчивается ли filename (строка, содержащая имя файла) на '.py'. Если путь задан как pathlib.Path объект, тогда .suffix возвращает расширение файла: >>> from pathlib import Path >>> Path('my/library/setup.py').suffix == '.py' True Если нужно найти все расширения, то можно .suffixes атрибут использовать: >>> Path('my/library.tar.gz').suffixes ['.tar', '.gz'] "максимально правильно" использовать самый простой читаемый код, который работает. Существенным отличием является случай, когда имя директории задано со слешом на конце, тогда поведение pathlib.Path отличается от os.path.splitext() или str.endswith(): >>> import os >>> os.path.splitext('pypy/rlib/rsre__gen.py/')[1] == '.py' False # not True!!! >>> 'pypy/rlib/rsre__gen.py/'.endswith('.py') False # not True!!! >>> Path('pypy/rlib/rsre__gen.py/').suffix == '.py' True

Ответ 3



Быстрее всего без всяких массивов и суффиксов: ext = somefilename[somefilename.rfind(".") + 1:]

Ответ 4



extension = '/path/to/somefile.ext'.split('.')[-1] print(extension)

Комментариев нет:

Отправить комментарий