Umkehren von C-Format-Zeichenfolgen in Python (`%`)

Einführung und Einrichtung

Angenommen, ich habe eine 'Vorlage' * Zeichenfolge des Formulars,

>>> template = """My %(pet)s ate my %(object)s.
... This is a float: %(number)0.2f.
... %(integer)10d is an integer on a newline."""

it dieser Vorlage kann ich einen neuen String erzeugen mit,

>>> d = dict(pet='dog', object='homework', number=7.7375487, integer=743898,)

>>> out_string = template % d

>>> print(out_string)
My dog ate my homework.
This is a float: 7.74.
    743898 is an integer on a newline.

Wie schön

Frag

Ich möchte mich bewerbentemplate zuout_string um ein neues @ zu erzeugdict. Etwas wie

>>> d_approx_copy = reverse_cstyle_template(out_string, template)
>>> print(d_approx_copy)
{pet='dog', object='homework', number=7.74, integer=743898,}

ibt es eine pythonische Möglichkeit, dies zu tun? Existiert bereits eine Implementierung? **

Anmerkunge

*: Ich benutze keinVorlag weil, AFAIK, sie derzeit nicht unterstützen umkehren.

**: Mir ist das @ bekan Risiken verbunden mit dem Verlust der Präzision innumber (von7.7375487 zu7.74). Damit kann ich umgehen. Ich bin nur auf der Suche nach einem einfachen Weg, dies zu tun.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage