Ich möchte alle Strings in meinem großen Python-Projekt auflisten.
Stellen Sie sich die verschiedenen Möglichkeiten vor, einen String in Python zu erstellen:
%Vor%Ich brauche ein Werkzeug, das für jeden String in meinem Projekt "filename, linenumber, string" ausgibt. Zeichenfolgen, die mit "\" oder "('')" auf mehrere Zeilen verteilt sind, sollten in einer einzelnen Zeile angezeigt werden.
Irgendwelche Ideen wie das gemacht werden könnte?
Der Vorschlag von unwind, das Ast-Modul in 2.6 zu verwenden, ist gut. (Es gibt auch das undokumentierte _ast-Modul in 2.5.) Hier ist ein Beispielcode für das
%Vor%Das Problem besteht in mehrzeiligen Strings. Wenn Sie das oben genannte ausführen, erhalten Sie.
%Vor%Sie sehen, dass es den Anfang der mehrzeiligen Zeichenfolge nicht meldet, nur das Ende. Es gibt keine gute Lösung dafür mit den integrierten Python-Tools.
Eine weitere Option ist, dass Sie mein ' python4ply -Modul verwenden können. Dies ist eine Grammatikdefinition für Python für PLY , das ein Parser-Generator ist. Hier ist, wie Sie es verwenden könnten:
%Vor%Die Ausgabe von diesem ist
%Vor%Spalteninformationen werden nicht unterstützt. (Es gibt einige größtenteils vollständig auskommentierten Code, um das zu unterstützen, aber es ist nicht vollständig getestet.) Andererseits, ich sehe, dass Sie es nicht brauchen. Es bedeutet auch, mit Pythons "Compiler" -Modul zu arbeiten, das unhandlicher ist als das AST-Modul.
Trotzdem, mit 30 bis 40 Zeilen Code sollten Sie genau das haben, was Sie wollen.
Sie können auch überlegen, Ihren Code mit zu analysieren Segmente
Ich kenne die andere Lösung nicht, aber es ist sicher sehr einfach zu bedienen.
Tags und Links python