Python имя файла без расширения

Достаточно часто возникают ситуации, когда у нас есть полное имя файла, а требуется узнать его расширение. Или добавить нужное расширение, когда не известно, ввел его пользователь или нет. Иногда у нас есть относительный путь до файла, а требуется узнать абсолютный. Про основные методы работы с именем файла и будет эта статья.

Содержание
  1. Абсолютный путь к файлу
  2. Имя файла
  3. Без расширения
  4. Расширение файла
  5. экстракт именем и расширением в bash
  6. извлечение расширения файла в python
  7. получить имена файлов в папке без расширения — питон
  8. получение последнего элемента списка
  9. как я могу сделать задержку времени в python?
  10. как я могу проверить, существует ли файл, без исключения?
  11. как я могу получить последовательное представление байта строки в c# без указания кодировки?
  12. как я могу получить подстроку из строки в python?
  13. как мне список всех файлов в директории?
  14. как выбрать часть имени (оставляю расширения) в python?
  15. как создать список файлов без расширений на python 3
  16. как получить только имя пути с python?
  17. как объединить два словаря в одном выражении?
  18. как удалить имя родительского каталога в python
  19. как подстроки в строке в python?
  20. перебора словарей, используя ‘для’ петли
  21. в python получить имя файла с os.путь либ
  22. на python регулярное выражение извлечь строку между символами
  23. строки в python.полосы зачистки слишком много символов
  24. удалить каждый символ после определенного символа в строке в python 3
  25. 19 ответов

Абсолютный путь к файлу

Для того чтобы узнать в Python абсолютный путь к файлу, потребуется воспользоваться библиотекой os. Её подключаем с помощью команды import os. В классе path есть метод abspath. Вот пример использования.

Так же можно воспользоваться и стандартной библиотекой pathlib. Она вошла в состав основных библиотек, начиная с версии Python 3.4. До этого надо было ее инсталлировать с помощью команды pip install pathlib. Она предназначена для работы с путями файловой системы в разных ОС и отлично подойдет для решения данной задачи.

Имя файла

Чтобы узнать имя файла из полной строки с путем, воспользуемся методом basename модуля os.

Здесь перед строкой вставил r, чтобы подавить возможное возникновение служебных символов. Например, в данном случае если не указать r, то f считалось бы символом перевода страницы.

Без расширения

Теперь разберемся, как в Python узнать имя файла без расширения. Воспользуемся методом splittext. В этот раз для примера возьмем файл с двойным расширением, чтобы проверить, как будут в этой ситуации работать стандартны функции.

Видно, что последнее расширение архиватора gz было отброшено, в то время как расширение несжатого архива tar осталось в имени.

Если же нам нужно только имя, то можно отбросить все символы полученной строки, которые идут после первой точки. Символ точки тоже отбросим.

Дополним предыдущий пример следующим кодом:

Расширение файла

В Python получить расширение файла можно аналогичным образом с помощью той же функции splitext. Она возвращает кортеж. Первый элемент кортежа имя, а второй – расширение. В данном случае нам нужен второй элемент. Индекс второго элемента равен единице, так как отсчет их идет от нуля.

Аналогично можно воспользоваться библиотекой pathlib. Воспользуемся методом suffix.

Но в нашем случае два расширения. Их можно узнать с помощью функции suffixes. Она возвращает список, элементами которого и будут расширения. Ниже приведен пример получения списка расширений.

How to get the filename without the extension from a path in Python?

Ответ 1

Getting the name of the file without the extension:

If the filename has multiple dots, only the extension after the last one is removed. For example:

See other answers below if you need to handle that case.

Ответ 2

You can make your own with:

Important note: If there is more than one in the filename, only the last one is removed. For example:

See below for other answers that address that.

Ответ 3
Ответ 4

A readable version, using in Python 3.4+

Ответ 5

For completeness sake, here is the solution for python 3.2+:

Ответ 6

If you want to keep the path to the file and just remove the extension

Ответ 7

os.path.splitext() work if there are multiple dots in the extension.

For example, images.tar.gz

You can just find the index of the first dot in the basename and then slice the basename to get just the filename without extension.

Ответ 8

In python 3 pathlib "The pathlib module offers high-level path objects."so,

Ответ 9

@IceAdor’s refers to rsplit in a comment to @user2902201’s solution. rsplit is the simplest solution that supports multiple periods.

Here it is spelt out:

Ответ 10

But even when I import os, I am not able to call it path.basename. Is it possible to call it as directly as basename?

import os os.path.basename

import os os.foo os

ing doesn’t mean you can use without referring to .

Ответ 11

Thought I would throw in a variation to the use of the without the need to use array indexing.

The function always returns a pair so it is safe to use:

root, ext = os.path.splitext(path)

Ответ 12

This returns the without the (C:UsersPublicVideosSample Videoswildlife)

Now you can get just the from the temp with

Ответ 13

A multiple extension aware procedure. Works for and paths. Works in Python 2 and 3.

Ответ 14

The other methods don’t remove multiple extensions. Some also have problems with filenames that don’t have extensions. This snippet deals with both instances and works in both Python 2 and 3. It grabs the basename from the path, splits the value on dots, and returns the first one which is the initial part of the filename.

Here’s a set of examples to run:

In every case, the value printed is:

Ответ 15

On Windows system I used drivername prefix as well, like:

So because I do not need drive letter or directory name, I use:

Ответ 16
Ответ 17

We could do some simple / magic as seen here (), to extract the filename (respecting the windows and POSIX differences).

Ответ 18
Ответ 19

the easiest way to resolve this is to

this saves you time and computation cost.

Ответ 20

For maximum esoterica:

Note: this is just for fun. Do not use this. Use instead

экстракт именем и расширением в bash

извлечение расширения файла в python

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

получение последнего элемента списка

как я могу сделать задержку времени в python?

как я могу проверить, существует ли файл, без исключения?

как я могу получить последовательное представление байта строки в c# без указания кодировки?

как я могу получить подстроку из строки в python?

как мне список всех файлов в директории?

как выбрать часть имени (оставляю расширения) в python?

как создать список файлов без расширений на python 3

как получить только имя пути с python?

как объединить два словаря в одном выражении?

как удалить имя родительского каталога в python

как подстроки в строке в python?

перебора словарей, используя ‘для’ петли

в python получить имя файла с os.путь либ

на python регулярное выражение извлечь строку между символами

строки в python.полосы зачистки слишком много символов

удалить каждый символ после определенного символа в строке в python 3

© 2020 — Вопросы и ответы по программированию

Как получить имя файла без расширения из каталога в Python?

я узнал метод под названием os.path.basename получить имя файла с расширением. Но даже когда я импортирую ОС, я не могу назвать это path.basename . Можно ли назвать его так же прямо, как basename?

19 ответов

получение имени файла без расширения:

Что касается вашей проблемы импорта, вы решаете ее следующим образом:

Оцените статью
Много толка
Добавить комментарий