Path.suffix
объекта Path
из модуля pathlib
. Например:
from pathlib import Path
file_path = Path("my_file.txt")
extension = file_path.suffix # Вернет ".txt"
Если нужно расширение без точки, используйте file_path.suffix[1:]
.
Для получения расширения файла с использованием модуля pathlib
в Python можно использовать несколько подходов. Вот основные из них:
suffix
:
Свойство suffix
объекта Path
возвращает расширение файла, включая точку. Если файл не имеет расширения, возвращается пустая строка.
from pathlib import Path
file_path = Path("my_file.txt")
extension = file_path.suffix # Расширение: ".txt"
file_path_no_extension = Path("my_file")
extension_no_ext = file_path_no_extension.suffix # Расширение: ""
print(f"Расширение файла {file_path}: {extension}")
print(f"Расширение файла {file_path_no_extension}: {extension_no_ext}")
suffixes
(для файлов с несколькими расширениями):
Свойство suffixes
возвращает список всех расширений файла, начиная с последнего. Например, для файла "archive.tar.gz"
, это будет ['.tar', '.gz']
.
from pathlib import Path
archive_path = Path("archive.tar.gz")
extensions = archive_path.suffixes # Расширения: ['.tar', '.gz']
print(f"Расширения файла {archive_path}: {extensions}")
Чтобы получить только последнее расширение (как в примере с suffix
), можно взять последний элемент списка:
last_extension = archive_path.suffixes[-1] # Расширение: '.gz'
print(f"Последнее расширение файла {archive_path}: {last_extension}")
Можно получить имя файла с помощью свойства name
и затем использовать строковые методы для выделения расширения. Однако, это менее надежный способ, так как требует ручной обработки случаев, когда расширение отсутствует.
from pathlib import Path
file_path = Path("another_file.pdf")
file_name = file_path.name
if "." in file_name:
extension = "." + file_name.split(".")[-1]
else:
extension = ""
print(f"Расширение файла {file_path} (ручной разбор): {extension}")
Этот способ менее предпочтителен, так как встроенные методы suffix
и suffixes
более удобны и надежны.
Рекомендации:
suffix
..tar.gz
) используйте свойство suffixes
.Использование pathlib
обеспечивает объектно-ориентированный подход к работе с путями файлов, что делает код более читаемым и поддерживаемым, по сравнению с использованием строковых манипуляций.