Если у меня есть имя файла, подобное одному из этих:
1.1.1.1.1.jpg
1.1.jpg
1.jpg
Как я мог получить только имя файла без расширения? Подойдет ли регулярное выражение?
Если у меня есть имя файла, подобное одному из этих:
1.1.1.1.1.jpg
1.1.jpg
1.jpg
Как я мог получить только имя файла без расширения? Подойдет ли регулярное выражение?
Ответы:
В большинстве случаев вам не следует использовать для этого регулярное выражение.
os.path.splitext(filename)[0]
Это также будет .bashrcправильно обрабатывать имя файла , сохраняя полное имя.
basename[:-len(".tar.gz")]для этого.
git-1.7.8.tar. Невозможно правильно угадать, сколько точек звонящий хочет удалить, поэтому splitext()удаляет только последнюю. Если вы хотите справиться с крайними случаями, например .tar.gz, вам придется делать это вручную. Очевидно, вы не можете убрать все точки, так как в итоге вы получите git-1.
>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')
Вы можете использовать метод основы, чтобы получить имя файла.
Вот пример:
from pathlib import Path
p = Path(r"\\some_directory\subdirectory\my_file.txt")
print(p.stem)
# my_file