früher als Python Mass Editor bekannt
Implementiert einen Python -Masseneditor, um Textdateien mithilfe von Python -Code zu verarbeiten. Die Modifikationsmodifikationen sind (sind) auf STDOut als Diff -Ausgang dargestellt. Man kann dann die Zieldatei (n) mit der Option -W/-Schreiboption ändern. Dies ist dem 2to3 -Werkzeug sehr ähnlich, das mit Python 3 versendet.
Warnung : Ein Wort der Vorsicht über die Verwendung von eval() |
Dieses Tool ist so weit nützlich, aber es beruht jedoch auf die Funktion python In den Artikel von Ned Batchelder finden Sie eine gründliche Diskussion der mit |
Sie müssen wahrscheinlich die Grundlagen des Python Re -Moduls (reguläre Ausdrücke) kennen.
Verwendung: Massedit.py [-h] [-v] [-W] [-v] [-e Ausdrücke] [-f Funktionen]
[-x executables] [-s start_dirs] [-m max_depth] [-o-Datei]
[-g-Datei] [--codieren codieren] [--Newline Newline]
[Dateimuster [Dateimuster ...]]
Python Mass Editor
Positionsargumente:
Dateimuster -Shell -ähnliche Dateinamen -Muster zum Verarbeiten oder - zum Lesen
von Stdin.
Optionale Argumente:
-h, -HELP Zeigen Sie diese Hilfsnachricht an und beenden Sie
-V, -Versionsprogrammprogrammsversionsnummer und Beenden
-W, -Write ändern die Zieldatei (n) an Ort und Stelle. Zeigt diff ansonsten.
-V, --verbose erhöht die logarithmische Ausführlichkeit (kann mehrfach angegeben werden
mal)
-e Ausdrücke, -Ausdruckexpressionsausdrücke
Python -Ausdrücke, die auf Zieldateien angewendet werden. Verwenden Sie das
Zeilenvariable auf die aktuelle Linie.
-F Funktionen, -Funktionsfunktionen
Python -Funktion für die Zieldatei angewendet. Datei nimmt
Inhalt als Eingangs- und Ertragsleitungen. Function as angeben
[Modul]:? <Funktion Name>.
-x Executables, -executable ausführbare Bereiche
Python ausführbar, um sich auf die Zieldatei zu bewerben.
-s start_dirs, -start start_dirs
Verzeichnis (IEs), aus denen nach Zielen suchen kann.
-M max_depth,-Max-Tiefe MAX_DEPTH
Maximale Tiefe beim Gehen von Unterverzeichnissen.
-O -Datei, -Output -Datei
Ausgabe der Ausgabe in eine Datei umleiten
-G -Datei, -generiere Datei
Generieren Sie eine Stub -Datei, die für die Option -f geeignet ist
-Codierung der Codierung von Eingabe- und Ausgabedateien
-Newline Newline Newline-Zeichen für Ausgabedateien
Beispiele:
# Einfacher String-Substitution (-E). Wird einen Unterschied zeigen. Keine Änderungen angewendet.
Massedit.py -e "re.sub ('failif', 'assertfalse', line)" *.py
# Änderungen der Dateiebene (-F). Überschreibt die vorhandenen Dateien (-W).
Massedit.py -W -f Fixer: Fixit *.py
# Ändert alle Tests*.py in Unterverzeichnissen von Tests.
massedit.py -e "re.sub ('failif', 'assertfalse', line)" -S -Tests Test*.py
# Verwandelt virtuelle Methoden (fast) in Mock_method geeignet für Gmock (siehe https://github.com/google/googletest).
massedit.py -e "re.sub(r's*virtuals+([w:<>,s&*]+)s+(w+)(([^)]*))s*((w+)*)(=s*0)?;', 'MOCK_METHOD(g<1>, g<2>, g <3>, ( g <4>, überschreiben)); ', Zeile) "gmock_test.cpp
Wenn MassEdit als Paket installiert ist (zum Beispiel von PYPI), kann man mit ihm als Befehlszeilenwerkzeug interagieren:
Python -m Massedit -e "re.sub ('assertequals', 'assertequal', line)" test.py
Oder als Bibliothek (Befehlszeilenoption oben als Kewyord -Argumente übergeben werden):
>>> Massedit importieren
>>> Dateinamen = ['Massedit.py']
>>> Massedit.edit_files (Dateinamen, ["re.sub ('Jerome', 'J.', Line)"])
Zuletzt gibt es einen bequemen massedit.bat -Wrapper für Fenster in der Verteilung enthalten.
Laden Sie massedit.py von http://github.com/elmotec/massedit herunter oder:
Python -M Pip Installieren Sie Massedit
Ich benutze Massedit hauptsächlich für die Quelle zur Quellenänderung großer Codebasen wie folgt:
Erstellen Sie zunächst ein fixer.py -Python -Modul mit der Funktion, die Ihren Quellcode verarbeitet. Zum Beispiel einen Header hinzufügen:
Def add_Header (Zeilen, Datei_Name):
Ertrag '// Dies ist mein Header' # wird die erste Zeile der Datei sein.
Für Zeilen in Linien:
Ertragslinie
Fügt den Ort von fixer.py zu Ihrem $PYTHONPATH hinzu und rufen Sie einfach massedit.py so an:
Massedit.py -f Fixer: add_header *.h
Sie können die -s . Option zur Verarbeitung aller .h -Dateien repursiv.
Ich benutze Runsed und Checks (von Unix -Elektrowerkzeugen) seit Jahren und fand unter Windows keinen guten Ersatz, bis ich auf Graham Fawcett Python Rezept 437932 auf Activestate gestoßen bin. Es hat mich dazu inspiriert, den Massedit zu schreiben.
Der Kern war ein wenig ausgewählt, und hier sind wir. Wenn Sie es nützlich finden und es verbessern, vergessen Sie bitte nicht, Patches einzureichen. Danke!
Wenn Sie sich mehr für awk-ähnliches Tool interessieren, werden Sie PYP wahrscheinlich eine bessere Alternative finden.
Um die Entwicklung für die Entwicklung einzurichten, ist es am einfachsten, die zusätzliche Konfiguration zu entwickeln:
Python -m -Venv -Venv . Venv/bin/aktivieren Python -m PIP Install -e. [Entwickeln]
Das Beste ist, Commitizen bei der Durchführung von Commits zu verwenden.
Lizenziert nach der MIT MIT -Lizenz. Siehe beigefügte Dateilizenz.txt.
Siehe Changelog.md für Änderungen später als 0,69,0
https://github.com/myint https://github.com/tgoodlet https://github.com/alfnet https://github.com/isidroas