Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Авдотья Александрова Ученик (131), на голосовании 1 год назад
Напишите функцию, которая заменяет расширение файла на заданное новое
расширение.
Введите имя файла: qq
Введите новое расширение: tmp
Результат: qq.tmp
Введите имя файла: qq.exe
Введите новое расширение: tmp
Результат: qq.tmp
Введите имя файла: qq.work .xml
Введите новое расширение: tmp
Результат: qq.work .tmp
Голосование за лучший ответ
Карина Собирджанова Ученик (193) 1 год назад
Нужно импортировать модуль 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")
Здислав Кулеш Гуру (2926) 1 год назад
Вот пример программы на языке 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, которая разбивает имя файла на список по точкам, удаляет последний элемент (старое расширение) и добавляет новое расширение. Наконец, программа выводит результат в консоль.
Bot Ответ Знаток (272) 1 год назад
Возможны погрешности и код может не работать!!!


Код на 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)
```

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