Ich habe diesen Code in meiner C-Datei:Wie kann ich eine C-Formatzeichenfolge in Python analysieren?
printf("Worker name is %s and id is %d", worker.name, worker.id);
ich will, mit Python, der Lage sein, das Format Zeichenfolge zu analysieren und die "%s"
und "%d"
zu finden.
Deshalb möchte ich eine Funktion haben:
>>> my_function("Worker name is %s and id is %d")
[Out1]: ((15, "%s"), (28, "%d))
Ich habe versucht, dies mit libclang der Python-Anbindung zu erreichen, und mit pycparser, aber ich sah nicht, wie kann dies mit diesen Werkzeugen durchgeführt werden.
Ich habe auch versucht mit Regex, um das zu lösen, aber das ist überhaupt nicht einfach - über Anwendungsfälle denken, wenn die printf
hat "%%s"
und solche Sachen.
Sowohl gcc als auch clang machen das offensichtlich als Teil des Kompilierens - hat niemand diese Logik nach Python exportiert?
Alles, was ich will zu tun, ist einfach zu lo Cate die "% d" und "% s" innerhalb der Zeichenfolge - zu wissen, ihre Indizes, wenn Sie, und nicht dies in eine Python drucken – speller
konvertieren Sie können es nicht einfach mit einem einfachen Regex parsen, müssen Sie mit char durch char umgehen . –
Das ist natürlich möglich, aber nicht einfach, ich werde es eher vermeiden. Es ist seltsam, dass diese Logik, die innerhalb von GCC und CLAMG liegt, in Python nicht verfügbar ist, auch in Parsing-Bibliotheken – speller