Я люблю "World of Warcraft", и играю в него. И, как многие люди, для того, чтобы зафиксировать какие-то достижения или важный/интересный диалог в игре, я делаю скриншоты. Да иногда просто что-то красивое увидел или необычное – почему бы не запечатлеть?
А ещё я люблю порядок. Наводить его я не люблю. Люблю поддерживать. Но для того, чтобы поддерживать, его всё-таки сначала надо навести. Поэтому, наводить порядок периодически приходится. Конечно, жизнь моя напрямую связана с компьютером, и поэтому чаще я навожу порядок именно в этой области. Я говорю про файлы. Файлы – это то, в чём нужно наводить порядок на компьютере.
Здесь были два абзаца текста. Больше их нет. Сразу к делу.
Итак, я наводил порядок в скриншотах WoW. Клиент игры не позволяет задавать параметры сохранения скриншотов, его настройки заданы жёстко, и если приходится пользоваться именно штатной функцией создания скриншотов, через какое-то время в подпапке Screenshots папки с игрой скапливается куча файлов с именами, содержащими дату и время, но при этом не упорядочиваемым по имени так, чтобы было отсортировано сразу и по дате.
И в Windows, и в Linux я использую сторонние программы для создания скриншотов, но при этом всё равно у меня была надежда, что когда-нибудь я напишу скрипт, который автоматически поменяет имена файлов так, чтобы было хорошо. Это произошло сегодня.
Теперь я "живу" в Linux, поэтому вместо WSH выбрал другой инструмент для своих нужд: Python 3. Досконального знания языка для моего скрипта не понадобилось. Всё вышло быстрее, чем я мог предположить.
Что было:
файлы в папке скриншотов имели имена вида WoWScrnShot_MMDDYY_hhmmss.jpg, из-за чего файлы созданные позже могли находиться перед более ранними в зависимости от порядкового номера месяца в году.
Мне требовалось:
чтобы файлы приобрели видWoW_screenshot YYYY-MM-DD hh-mm-ss.jpg для упорядочивания по мере создания независимо от выбранного способа сортировки в каталоге.
Итак, на языке Python 3 файл, который при выполнении в папке с изображениями произведёт необходимые замены кусков имени каждого скриншота, выглядит так:
import os
for CurrentFilename in os.listdir('.'):
if CurrentFilename[:11] == 'WoWScrnShot':
DD = CurrentFilename[14:16]
MM = CurrentFilename[12:14]
YY = CurrentFilename[16:18]
Hr = CurrentFilename[19:21]
Min = CurrentFilename[21:23]
Sec = CurrentFilename[23:25]
NewFilename = 'WoW_screenshot ' + '20' + YY + '-' + MM + '-' + DD + \
' ' + Hr + '.' + Min + '.' + Sec + '.jpg'
os.rename(CurrentFilename, NewFilename)
Report = 'Файл "' + CurrentFilename + '" был переименован в "' + \
NewFilename + '".'
print(Report)
А ещё я люблю порядок. Наводить его я не люблю. Люблю поддерживать. Но для того, чтобы поддерживать, его всё-таки сначала надо навести. Поэтому, наводить порядок периодически приходится. Конечно, жизнь моя напрямую связана с компьютером, и поэтому чаще я навожу порядок именно в этой области. Я говорю про файлы. Файлы – это то, в чём нужно наводить порядок на компьютере.
Здесь были два абзаца текста. Больше их нет. Сразу к делу.
Итак, я наводил порядок в скриншотах WoW. Клиент игры не позволяет задавать параметры сохранения скриншотов, его настройки заданы жёстко, и если приходится пользоваться именно штатной функцией создания скриншотов, через какое-то время в подпапке Screenshots папки с игрой скапливается куча файлов с именами, содержащими дату и время, но при этом не упорядочиваемым по имени так, чтобы было отсортировано сразу и по дате.
И в Windows, и в Linux я использую сторонние программы для создания скриншотов, но при этом всё равно у меня была надежда, что когда-нибудь я напишу скрипт, который автоматически поменяет имена файлов так, чтобы было хорошо. Это произошло сегодня.
Теперь я "живу" в Linux, поэтому вместо WSH выбрал другой инструмент для своих нужд: Python 3. Досконального знания языка для моего скрипта не понадобилось. Всё вышло быстрее, чем я мог предположить.
Что было:
файлы в папке скриншотов имели имена вида WoWScrnShot_MMDDYY_hhmmss.jpg, из-за чего файлы созданные позже могли находиться перед более ранними в зависимости от порядкового номера месяца в году.
Мне требовалось:
чтобы файлы приобрели вид
Итак, на языке Python 3 файл, который при выполнении в папке с изображениями произведёт необходимые замены кусков имени каждого скриншота, выглядит так:
for CurrentFilename in os.listdir('.'):
if CurrentFilename[:11] == 'WoWScrnShot':
DD = CurrentFilename[14:16]
MM = CurrentFilename[12:14]
YY = CurrentFilename[16:18]
Hr = CurrentFilename[19:21]
Min = CurrentFilename[21:23]
Sec = CurrentFilename[23:25]
NewFilename = 'WoW_screenshot ' + '20' + YY + '-' + MM + '-' + DD + \
' ' + Hr + '.' + Min + '.' + Sec + '.jpg'
os.rename(CurrentFilename, NewFilename)
Report = 'Файл "' + CurrentFilename + '" был переименован в "' + \
NewFilename + '".'
print(Report)
Я не забыл про "жителей Windows", и для тех, кто не имеет установленного в системе Python 3, его устанавливать не придётся: во взятом со странички Python Portable дистрибутиве я удалил лишнее для уменьшения веса, оставив только необходимое для запуска (по крайней мере в Windows XP), положил внутрь свой скрипт и файл Rename.bat для удобного запуска. Получившееся богатство можно взять в архиве по ссылке на моём гуглодиске, распаковать в папку со скриншотами и запустить Rename.bat.
Файлы, начинающиеся на "WoWScrnShot", будут переименованы. О каждом выполненном переименовании должно появиться сообщение.
Если требуется подправить скрипт, (например, вместо "WoW_screenshot" в результурующем файле вы хотите использовать другой текст), откройте файл Rename.py, находящийся в папке Python архива .zip, с помощью любого текстового редактора, внесите желаемые изменения и сохраните файл перед запуском.
Комментариев нет:
Отправить комментарий
Если у вас есть что сказать и/или вы не согласны с изложенным в посте – оставьте комментарий. Регистрации не требуется.
If you think I'm wrong and/or you have to say something – fill free to write comment. No sign up required.