From b3782c7198c03f37bc16575c650c3e116aecf1b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9?= <50486086+DarkCat09@users.noreply.github.com> Date: Tue, 6 Apr 2021 11:01:23 +0400 Subject: [PATCH] Add files via upload --- bookrename.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 bookrename.py diff --git a/bookrename.py b/bookrename.py new file mode 100644 index 0000000..df04cab --- /dev/null +++ b/bookrename.py @@ -0,0 +1,31 @@ +import os +import re + +# --- +# Шаблон для форматирования строки. +# То, как будет переименована книга. +# +# (F-строки не стал использовать для простоты редактирования шаблона) +# +# author=автор,title=название,year=год,ext=расширение(лучше не трогать) +# +template = '{author} -- {title} -- {year}.{ext}' +# --- + +# Получаем текущий каталог +curdir = os.getcwd() +# Компилируем регулярку +# https://regexr.com/5q42v +bookregex = re.compile(r'[\[\(]*([А-Яа-я\w\s]+?)[\]\)]*[:\.\-\s]*([А-Яа-я\w\d\s]+?)[:\.\-\s]*(\d+)(?:\.(pdf|doc[x]*|epub|fb2|txt))') + +# Получаем дерево каталогов и файлов в curdir +for rootdir, subdirs, files in os.walk(curdir): + # Пробегаемся по всем файлам в дереве + for filename in files: + # Ищем совпадения имени файла с RegEx + result = bookregex.search(filename) + # И если получилось, ... + if (result != None): + # ... то всё прекрасно, переименовываем по шаблону + os.rename(os.path.join(rootdir, filename), os.path.join(rootdir, \ + template.format(author=result.group(1),title=result.group(2),year=result.group(3),ext=result.group(4))))