Ich habe eine Python-Anwendung, die eine SQL-Datei ausgibt:
%Vor% Dies geschieht nicht in einer for
-Schleife, es wird geschrieben, wenn Daten verfügbar werden. Gibt es eine Möglichkeit, das letzte Kommazeichen zurückzusetzen, wenn die Anwendung ausgeführt wird, und es durch ein Semikolon zu ersetzen? Ich bin mir sicher, dass ich eine Workaround erfinden könnte, indem ich das Komma vor dem Zeilenumbruch ausgeben und ein globales Bool verwenden würde, um festzustellen, ob ein bestimmter "Schreibvorgang" der erste Schreibvorgang ist. Ich denke jedoch, dass die Anwendung viel sauberer wäre, wenn ich einfach darüber "zurückgehen" könnte. Natürlich ist es einfacher, Python zu sein!
Beachten Sie, dass es in diesem Anwendungsfall keine praktikable Lösung ist, jede insert
-Wertlinie in einer Liste zu haben und dann die Liste zu implodieren.
Verwenden Sie suchen, um den Cursor ein Byte (Zeichen) rückwärts zu bewegen, dann schreiben Sie das neue Zeichen:
%Vor%Dies ist die einfachste Änderung, wenn Sie Ihren aktuellen Code beibehalten ("Arbeitscode" schlägt "idealen Code"), aber es wäre besser, die Situation zu vermeiden.
Wie wäre es, die Kommata vor dem Hinzufügen der neuen Zeile hinzuzufügen?
%Vor%Sie haben das in Ihrer Frage erwähnt - ich denke, das ist für einen Betreuer viel klarer als nach Kommas zu suchen und sie zu überschreiben.
EDIT: Da die obige Lösung einen globalen Boolean in Ihrem Code erfordern würde (was nicht wünschenswert ist), könnten Sie stattdessen das Schreibverhalten der Datei in eine Hilfsklasse einbinden:
%Vor%Dadurch wird die gesamte Logik der SQL-Notation in eine einzige Klasse gekapselt, wodurch der Code lesbar bleibt und gleichzeitig der Code für den Aufrufer vereinfacht wird.
Verwenden Sie Generatoren, z. B .:
%Vor%Für Hardcore-Iteratoren sollten Sie damit beginnen:
%Vor% Wenn Ihre Daten eine imperative API verwenden, ist diese nicht iterierbar, send()
Ihre Daten an den Generator:
Tags und Links python