Переименовать кучу файлов на Mac - PullRequest
0 голосов
/ 20 июня 2020

Я хотел бы переименовать кучу файлов на ma c, и мне было интересно, есть ли утилита для этого или мне нужно перейти к чему-то вроде python. Вот переименование, которое я хотел бы сделать:

введите описание изображения здесь

Я хочу заполнить zfill так, чтобы число было в форме \d{3}, то есть GM008.mp3. Есть ли способ сделать это в ma c или какой способ может быть самым быстрым? То, что я сейчас делаю, - это однострочный python:

[os.rename(src, './GM' + src.split('GM')[1].split('.')[0].zfill(3) + '.mp3') for src in os.listdir('.')]
# ['GM001.mp3', 'GM000.mp3', 'GM003.mp3', 'GM007.mp3', 'GM006.mp3', 'GM012.mp3', 'GM004.mp3', 'GM005.mp3', 'GM008.mp3', 'GM009.mp3', etc...]

Ответы [ 3 ]

2 голосов
/ 20 июня 2020

Это должно быть довольно безопасно; мы ищем точное совпадение с вашим форматом mp3 GM\d+\.mp3 и дополняем di git run перед .mp3 нулями, используя zfill. os - это платформенные агности c.

import os
import re

for fname in [x for x in os.listdir(".") if re.fullmatch(r"GM\d+\.mp3", x)]:
    os.rename(fname, re.sub(r"(\d+)(?=\.mp3)", lambda x: x.group(1).zfill(3), fname))
0 голосов
/ 20 июня 2020

Я не уверен, что это подходящее место для этого вопроса, но в любом случае следующий скрипт будет работать для точного формата, который вы указали. Это должно быть легко обобщить для работы с немного разными именами. cd в каталог с файлами и запускаем этот скрипт:

import os

for filename in os.listdir("."):
    if filename.endswith(".mp3"):
        without_prefix = filename[:-4]
        # In this case, prefix = 'GM', num = the number
        prefix, num = without_prefix[:2], without_prefix[2:]
        new_name = f'{prefix}{num.zfill(3)}.mp3'
        os.rename(filename, new_name)

0 голосов
/ 20 июня 2020

РЕДАКТИРОВАТЬ - После исправления вашего вопроса мой ответ может быть не самым полезным, но я надеюсь, что он заставит вас поиграть с Automator :)

Вы можете попробовать например, Automator в Ма c или Apple Script. Automator встроен, и вы можете записывать свой рабочий процесс и переводить его в «сценарий». Это очень просто в использовании - перетаскивание.

При запуске автомата выберите «Приложение» и введите следующее:

Вот пример:

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...