Якщо у мене є ім’я файлу, подібне до одного з них:
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')
Ви можете використовувати метод stem для отримання імені файлу.
Ось приклад:
from pathlib import Path
p = Path(r"\\some_directory\subdirectory\my_file.txt")
print(p.stem)
# my_file