Как убрать расширение файла из названия
Перейти к содержимому

Как убрать расширение файла из названия

  • автор:

Распространенные расширения имен файлов в Windows

Имена файлов в Windows состоять из двух частей, разделенных точкой: первая, имя файла, и вторая, расширение из трех или четырех символов, которое определяет тип файла. Например, в expenses.xlsx первая часть имени файла — expenses, а расширение — xlsx.

Расширения помогают определить компьютеру, в каком приложении был создан файл или в каком приложении его можно открыть, а также какой значок следует использовать для файла. Например, расширение docx сообщает компьютеру, что файл можно открыть в программе Microsoft Word и что при просмотре файла в проводнике для него следует отображать значок Word.

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

Если при просмотре файлов в проводнике не отображаются расширения имен файлов, выполните следующие действия.

  1. В поле поиска на панели задач введите слово проводник и в результатах поиска выберите Проводник.
  2. В проводнике в разделе Вид в группе Показать или скрыть установите флажок Расширения имен файлов.

Включение отображения расширений имен файлов в Windows

Ниже приведен список распространенных расширений имен и форматов файлов в Windows.

Удаление расширения имени файла через Python

Писал скрипт частью функционала которого является добавление к файлу второго расширения. Было например file.txt и стало file.txt.lol . Второй скрипт должен стереть второе расширение чтобы обратно стало file.txt . Как это можно реализовать?

os.rename(file.txt, file.txt + ".lol") 

Отслеживать
user448066
задан 1 июл 2021 в 18:27
37 1 1 серебряный знак 5 5 бронзовых знаков
1 июл 2021 в 18:40

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

from os import path name = 'file.txt.lol' no_lol, lol = path.splitext(name) # В первую переменную попадет 'file.txt', во вторую - '.lol' 
from pathlib import Path path = Path('file.txt.lol') print(path.stem) # Выведет file.txt (имя файла без расширения) print(path.suffix) # Выведет .lol 

Еще вариант, когда есть путь (а не просто имя файла), нужно убрать расширение:

from pathlib import Path path = Path('somedir/file.txt.lol') print(str(path.with_suffix('')) # Выведет somedir/file.txt # Стандартные функции Python умеют работать с объектами Path # Переименовать файл из somedir/file.txt.lol в somedir/file.txt os.rename(path, path.with_suffix('')) 

Дальше варианты через методы строки, но тут нужно быть аккуратным, т.к. строка не понимает, что внутри нее путь, и с точки зрения строки ‘some.path/file’ часть ‘path/file’ внезапно может оказаться расширением, в то время как функции из os.path и pathlib поймут, где часть пути, а где расширение.

Средствами str.rpartition (разбить по самому правому разделителю):

name = 'file.txt.lol' name, dot, lol = name.rpartition('.') # name='file.txt', dot='.', lol='lol' 

Это примерно аналогично str.rsplit с maxsplit=1 :

name = 'file.txt.lol' name, lol = name.rsplit('.', maxplit=1) 

Единственно, rsplit вернет список из 1 элемента, если точки нет (из-за этого присваивание в две переменные упадет с ошибкой), а rpartition всегда возвращает кортеж из 3 элементов (если разделитель не будет найден, то первые два элемента будут пустыми строками).

Как из имени файла в списке (в строке) убрать расширение?

Я хочу получить переменную с названием файла без его расширения.
Подробнее можно понять по коду.
Вижу 2 пути решения, но не могу доделать:
1) Составляю список файлов без расширений и выдёргиваю из списка через поиск нужное мне имя. Однако не знаю, как получиться список БЕЗ расширений.
2) Использовать список с расширениями файлов, но почему-то не выходит через replaсe откинуть расширение, т.е.:

import os f = os.listdir() # список файлов в каталоге # Veter = f.index('Veter') Veter = [i for i in f if i.startswith('Veter')] Veter = Veter[0].replaсe('.py','') print(Veter)

На выходе получаю ошибку:

Veter = Veter[0].replaсe('.py','') AttributeError: 'str' object has no attribute 'replaсe'

Сам файл называется Veter_03 (суть в том, что версия файла меняется, а он сам используется, как модуль, поэтому я хочу сделать имя модуля переменным)

  • Вопрос задан более трёх лет назад
  • 1520 просмотров

2 комментария

Оценить 2 комментария

Как убрать расширения в конце названий файлов (.jpeg, .mp3 и т. д.)?

Нажимаем свойства папак, и там будет такая графа показывать расшерения файлов нажимаем да, и после этого выбирае файл и меняем расширения вот так вот например: фото1.jpeg после точки и есть расширения файла можно поменять вот так после точки фото1.tiff

через программу Total Commander, программа файловый менеджер, умеет и групповое переименование делать и форматировать разделы и копировать с одного места в другое и архивировать и еще много чего

открой сервис. свойства папки. поставь или сними там галочку показывать расширения для зарегистрированных типов файлов. (или как то так)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *