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

Если у меня есть имя файла как одно из следующих:

1.1.1.1.1.jpg

1.1.jpg

1.jpg

Как я могу получить только имя файла без расширения? Было ли подходящим регулярное выражение?

Ответ 1

В большинстве случаев вам не следует использовать регулярное выражение.

os.path.splitext(filename)[0]

Это также будет корректно обрабатывать имя файла, например .bashrc, сохраняя все имя.

Ответ 2

>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')

Ответ 3

Если бы мне пришлось делать это с помощью регулярного выражения, я бы сделал это следующим образом:

s = re.sub(r'\.jpg$', '', s)

Ответ 4

Нет необходимости в регулярном выражении. os.path.splitext - ваш друг:

os.path.splitext('1.1.1.jpg')
>>> ('1.1.1', '.jpg')