python - учитывая формат и строку, получить информацию из этой строки - PullRequest
0 голосов
/ 20 октября 2019

Я хочу сделать что-то похожее на метод strptime в модуле datetime. Учитывая формат и строку, измените формат этой строки и верните новую строку. Так, например, у меня есть имя файла эпизода из сериала, я вызываю функцию для изменения формата имени файла, определяя, где находится заголовок, где эпизод, качество и т. Д.

def change_format(file_name, format, season=1):
    title = # Get the title applying the format to the string
    episode = # Get the episode applying the format to the string
    season = # Get the season applying the format to the string or from the variable in the function
    quality # Get the quality applying the format to the string
    return f'{title} + S{season}E{episode} [{quality}]'

Некоторая информация может или не может быть предоставлена ​​(например, если качество не указано, не используйте его при возврате), и может быть дополнительная информация.

change_format('Some Title Here - 1 [1080p] [CDI3989AFM]', '%t - %e [%q][%i]')

Здесь,% t - заголовок,% e - эпизод,% q - качество, а% i - дополнительная информация. Название состоит из 3 слов, поэтому, возможно, вам следует указать количество слов?

Ожидаемый результат:

"Some Title Here S01E01 [1080p] [CDI3989AFM]"

1 Ответ

0 голосов
/ 20 октября 2019

для этого вы можете использовать регулярное выражение:

import re

r = re.match('(.*).*(\[.*\]).*(\[.*\])', 'Some Title Here - 1 [1080p] [CDI3989AFM]')
r.group(1) # Some Title Here - 1 
r.group(2) # [1080p] 
r.group(2) # [CDI3989AFM]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...