Преобразование между старым и новым форматами строки в Python - PullRequest
0 голосов
/ 15 апреля 2020

Существует ли стандартная или сторонняя библиотека для Python 3.8, которая позволяет легко преобразовывать старый и новый формат строки?

Мне нужны, например, две функции from_old_to_new и from_new_to_old, такие что

>>> from_old_to_new('video_frame_%d') == 'video_frame_{:d}'
True
>>> from_new_to_old('{} lives in {}') == '%s lives in %s'
True
>>> from_old_to_new('Value is %03.2f') == 'Value is {:03.2f}'
True

Это позволит пользователю использовать внешние инструменты, которые полагаются на старый формат строки. В качестве примера использования рассмотрим функцию extract_frames(path_to_video, frame_format):

>>> frames = extract_frames('short_video.mp4', 'frame_%d.png')
short_video.mp4 extracted.
frames = [frame_1.png, frame_2.png, frame_3.png]

>>> frames = extract_frames('short_video.mp4', 'frame_{:d}.png')
ValueError: cannot understand frame_format "frame_{:d}.png"

>>> frames = extract_frames('short_video.mp4', from_new_to_old('frame_{:d}.png'))
short_video.mp4 extracted.
frames = [frame_1.png, frame_2.png, frame_3.png]

. Конечно, может быть просто реализовать такую ​​пару функций для простых случаев, как '%s' <-> '{}' (даже в этом случае следует беспокоиться о все эти % и '{}'). Но, согласно документации Python , существует много других случаев, которые необходимо преобразовать. Я думал, что стандартная библиотека Python будет включать функции, подобные тем, которые облегчают использование программ, которые ожидают старого формата, но, похоже, это не так.

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