Существует ли стандартная или сторонняя библиотека для 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 будет включать функции, подобные тем, которые облегчают использование программ, которые ожидают старого формата, но, похоже, это не так.