Задать вопрос
@bossigorxxx

Как переименовать файлы?

Всем привет! Подскажите пожалуйста как можно автоматом переименовать этот список файлов:
1-high.jpg
2--3-high.jpg
4--5-high.jpg
6--7-high.jpg
8--9-high.jpg

На такой:

01-high.jpg
02--03-high.jpg
04--05-high.jpg
06--07-high.jpg
08--09-high.jpg

import os

old_file_names = ["1-high.jpg", "2--3-high.jpg", "4--5-high.jpg"]

new_file_names = ["01-high.jpg", "02--03-high.jpg", "04--05-high.jpg"]

for i in range(len(old_file_names)):

os.rename(old_file_names[i], new_file_names[i])


Пытаюсь так но у меня жалуется система на неверный код
  • Вопрос задан
  • 173 просмотра
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Такие вещи удобно делать однострочниками через "py" прямо в командной строке, но это если знаешь питон и легко на нём фигачишь скрипты.

Если у вас с питоном беда, то можете всё это проделать в экселе.
Вам нужно выгрузить листинг каталога в файл, вставить его в столбец экселя, формулами обработать и в отдельном столбце получить команду для переименовывания. Потом этот столбец копируете и сохарняете его текст как *.bat-файл, или shell, если другая операционка.

Если у вас есть мультикурсорный редактор типа сублайма, Атома, Notepad++, или любой IDE, то вы можно в списке файлов размножить курсоры на каждую строку и проделать все необходимые операции над всеми строками сразу. Получите на выходе тоже пакетный файл для переименования.

Ещё можно поставить FarManager, сейчас он стал вообще кроссплатформенным. Там можно записываь клавиатурные макросы. Делаете одно переименоание под запись, а потом вешаете записанны ймакрос на клавишу и обрабатываете все файлы быстроенько.

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

Выбирайте решение на любой вкус.

Ну ок, на питоне вам стоит каждое имя файла сплитнуть по символу "-", а потом, перебрав все элементы получившегося списка, дополнить нулями те, что состят только из цифр (метод isdigit).
У строки есть метод zfill, который умеет это делать до нужной длины слева.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы