#!/usr/bin/env python3 import re from urllib.parse import quote from sys import stdin, stdout ID_LINE = re.compile(r'(?P +)(?P.+)(?P)\n') def encode_id(line: str) -> str: match = re.fullmatch(ID_LINE, line) if match is None: return line return '{open}{iri}{close}\n'.format(iri=quote(match.group('url'), ':/#'), **match.groupdict()) stdout.writelines(map(encode_id, stdin.readlines()))