Python сменить расширение файла

Как изменить расширение файлов с помощью python

В папке у меня есть 100 файлов с расширениями «.txt», «.doc», «.pdf». Мне нужно переименовать файлы как:

  1. Если имя файла заканчивается на «.txt» -> заменить имя файла на «.jpg»
  2. Если имя файла заканчивается на «.doc» -> заменить имя файла на «.mp3»
  3. Если имя файла заканчивается на «.pdf» -> заменить имя файла на «.mp4»

Я пробовал это до сих пор

import os,sys folder = "C:/Users/TestFolder" for filename in os.listdir(folder): base_file, ext = os.path.splitext(filename) print(ext) if ext == '.txt': print("------") print(filename) print(base_file) print(ext) os.rename(filename, base_file + '.jpg') elif ext == '.doc': print("------") os.rename(filename, base_file + '.mp3') elif ext == '.pdf': print("------") os.rename(filename, base_file + '.mp4') else: print("Not found") 

Вы можете просто использовать словарь для хранения сопоставлений вместо цепочки if/elif/else! Проверьте мой ответ ниже @chinna

В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в.

Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир.

Чтобы выровнять элемент

по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов.

React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим.

Ответы 1

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

import os folder = "C:/Users/TestFolder" #Dictionary for extension mappings rename_dict = for filename in os.listdir(folder): #Get the extension and remove . from it base_file, ext = os.path.splitext(filename) ext = ext.replace('.','') #If you find the extension to rename if ext in rename_dict: #Create the new file name new_ext = rename_dict[ext] new_file = base_file + '.' + new_ext #Create the full old and new path old_path = os.path.join(folder, filename) new_path = os.path.join(folder, new_file) #Rename the file os.rename(old_path, new_path) 

Источник

Читайте также:  Php do while reset

Помогите пожалуйста составить программу на языке Python.

Напишите функцию, которая заменяет расширение файла на заданное новое
расширение.
Введите имя файла: qq
Введите новое расширение: tmp
Результат: qq.tmp
Введите имя файла: qq.exe
Введите новое расширение: tmp
Результат: qq.tmp
Введите имя файла: qq.work .xml
Введите новое расширение: tmp
Результат: qq.work .tmp

Нужно импортировать модуль os, у которого есть методы os.path.splitext() и os.rename(). Методом os.path.splitext() можно разделить исходный файл на две части — его имя и разрешение, которое попадает в квадратные скобки как [0] — имя и [1] — разрешение. Далее нужно просто склеить имя с новым разрешением через os.rename().

#Переименовать файл из .raw в .txt
import os
file=»C:/Users/Vasya/Documents/Python/tangaria/scores.raw»
filename = os.path.splitext(file)[0]
os.rename(file, filename + «.txt»)

Вот пример программы на языке Python, которая заменяет расширение файла на заданное новое расширение:

def change_extension(filename, new_extension): 
return '.'.join(filename.split('.')[:-1]) + '.' + new_extension

filename = input("Введите имя файла: ")
new_extension = input("Введите новое расширение: ")
print("Результат:", change_extension(filename, new_extension))

При запуске программы пользователь должен ввести имя файла и новое расширение. Затем программа вызывает функцию change_extension, которая разбивает имя файла на список по точкам, удаляет последний элемент (старое расширение) и добавляет новое расширение. Наконец, программа выводит результат в консоль.

Возможны погрешности и код может не работать.

Код на Python для выполнения данной задачи может выглядеть следующим образом:

«`python
def change_extension(filename, new_extension):
# Ищем последнюю точку в имени файла
dot_index = filename.rfind(‘.’)

# Если точка не найдена, то новое расширение будет добавлено в конец имени
if dot_index == -1:
return filename + ‘.’ + new_extension

# Иначе заменяем старое расширение на новое
return filename[:dot_index+1] + new_extension

# Пример использования функции
filename = input(‘Введите имя файла: ‘)
new_extension = input(‘Введите новое расширение: ‘)
result = change_extension(filename, new_extension)
print(‘Результат:’, result)
«`

Читайте также:  PyScript

В данном коде функция `change_extension` принимает на вход имя файла и новое расширение в качестве строковых аргументов. С помощью метода `rfind` мы ищем последнюю точку в имени файла и записываем её индекс в `dot_index`. Если точка не найдена, то новое расширение добавляется в конец имени файла с помощью оператора конкатенации строк. Если точка найдена, то мы заменяем старое расширение на новое с помощью среза строк, который извлекает часть имени файла до последней точки и добавляет к ней новое расширение.

Источник

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

У меня возникают трудности с созданием скрипта Python, который переименует расширения файлов в папке и продолжит делать это в подкаталогах. Вот сценарий, который у меня есть до сих пор; он может переименовывать только файлы в верхнем каталоге:

#!/usr/bin/python # Usage: python rename_file_extensions.py import os import sys for filename in os.listdir ("C:\\Users\\username\\Desktop\\test\\"): # parse through file list in the folder "test" if filename.find(".jpg") > 0: # if an .jpg is found newfilename = filename.replace(".jpg","jpeg") # convert .jpg to jpeg os.rename(filename, newfilename) # rename the file 

4 ответа

import os import sys directory = os.path.dirname(os.path.realpath(sys.argv[0])) #get the directory of your script for subdir, dirs, files in os.walk(directory): for filename in files: if filename.find('.jpg') > 0: subdirectoryPath = os.path.relpath(subdir, directory) #get the path to your subdirectory filePath = os.path.join(subdirectoryPath, filename) #get the path to your file newFilePath = filePath.replace(".jpg",".jpeg") #create the new name os.rename(filePath, newFilePath) #rename your file 

Я изменил ответ Джарона, указав путь к файлу и полный пример переименования файла.

Я немного изменил ответ Гектора Родригеса-младшего, потому что он заменит ЛЮБОЕ появление «.jpg» в пути, например /path/to/my.jpg.files/001.jpg станет /path/to/my.jpeg.files/001.jpeg , а это не то, что вы хотели, верно?

Хотя, как правило, не рекомендуется использовать точки «.» в имени папки это может случиться.

import os import sys directory = os.path.dirname(os.path.realpath(sys.argv[0])) # directory of your script for subdir, dirs, files in os.walk(directory): for filename in files: if filename.find('.jpg') > 0: newFilename = filename.replace(".jpg", ".jpeg") # replace only in filename subdirectoryPath = os.path.relpath(subdir, directory) # path to subdirectory filePath = os.path.join(subdirectoryPath, filename) # path to file newFilePath = os.path.join(subdirectoryPath, newFilename) # new path os.rename(filePath, newFilePath) # rename 

Источник

Читайте также:  Python str to bytes without encode

Русские Блоги

windows+R Затем введите CMD Затем введите netstat -a Или введите Netstat -ano Нажмите Диспетчер задач Нажмите Подробную информацию, чтобы просмотреть номер PID Согласно номеру порта, PID соответствует.

Веб-путешествие — знакомство с HTML5 первым (1)

Чтобы начать фронтенд-путешествие, мы должны сначала понять некоторые базовые знания о резерве. В этом разделе будет продемонстрирована простейшая композиция страницы HTML5 и представлены исторические.

Установка RocketMQ

1. Подготовка окружающей среды 64 -битный OS Linux JDK выше 1,8 Установите Maven Команда установки заключается в следующем: wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binarie.

java.net.BindException: Address already in use: bind

Исключение: Причина: порт занят. В моем проекте это происходит потому, что одна и та же программа сокетов запускается дважды. Это исключение отличается от того, что tomcat запускал неско.

Установить svn под linux

Выполните следующую команду, чтобы установить SVN. Выполните следующую команду, чтобы просмотреть версию SVN. Выполните следующие действия, чтобы создать репозиторий: Выполните следующую команду, чтоб.

Вам также может понравиться

iOS12.1 использует UINavigationController + UITabBarController (UITabBar matte), после установки hidesBottomBarWhenPasted, .

Если вы используете систему OS12.1 UINavigationController + UITabBarController (UITabBar matte), вы столкнетесь с проблемой беспорядка макета панели вкладок в popViewControllerAnimated: Код, вызывающи.

переменные среды Java

jvm/jdk/jre 》 Jvm (виртуальная машина, компилировать код в класс) 》 Jdk (укажите пакет классов, который должен вызывать Java) 》 Jre (среда, необходимая для выполнения) Переменные среды: 》 Путь: путь, .

Springboot интегрирует шаблон MongoDB

Предисловие Основным проектом в прошлом году была разработка и применение springboot, и я собираюсь немного использовать данные springboot. Дело не в том, чтобы записывать использование api (возможно.

CF 1165D почти все делители воды

http://codeforces.com/contest/1165/problem/D Главная мысль: Введите количество раз, для каждого, введите n, затем следуйте N номер N, запрашивайте их минимальные общепринятые несколько, а затем опреде.

Rand (), Srand () Случайный номер сборки

Система предоставляет две функции в функции библиотеки для генерации случайных чисел: SRAND () и RAND (); Файл заголовка Функция определения: int rand (void), Функция функции: генерир.

Источник

Оцените статью