Ich bin auf einer Ubuntu-Plattform und habe ein Verzeichnis mit vielen .py-Dateien und Unterverzeichnissen (die auch .py-Dateien enthalten). Ich möchte am Anfang jeder .py-Datei eine Textzeile hinzufügen. Was ist der einfachste Weg dies mit Perl, Python oder Shell-Skript zu tun?
Um alle .py
-Dateien in einem Verzeichnis zu verarbeiten, führen Sie diesen Befehl rekursiv in Ihrer Shell aus:
find . -name '*.py' | xargs perl script.pl
Bearbeiten: Bearbeite Dateinamen aus dem Kommentar von tchrist mit Leerzeichen.
Angenommen, Sie haben GNU find und xargs (wie Sie das linux-Tag in der Frage angegeben haben)
%Vor%Ohne GNU-Tools würden Sie etwas tun wie:
%Vor%Das wird
open(filename,'w')
.) dateineingang bietet Ihnen auch die Möglichkeit, Ihre Originaldateien vor dem Ändern zu sichern.
%Vor%Was ist der einfachste Weg dies mit Perl, Python oder Shell-Skript zu tun?
Ich würde Perl verwenden, aber das liegt daran, dass ich Perl viel besser kenne, als ich Python kenne. Verdammt, vielleicht würde ich das in Python machen, nur um es ein bisschen besser zu lernen.
Der einfachste Weg besteht darin, die Sprache zu verwenden, mit der Sie vertraut sind und mit der Sie arbeiten können. Und das ist wahrscheinlich auch der beste Weg.
Wenn dies alles Python-Skripte sind, nehme ich an, dass Sie Python kennen oder Zugang zu einer Reihe von Leuten haben, die Python kennen. Es ist also wahrscheinlich besser, das Projekt in Python zu machen.
Allerdings ist es auch mit Shell-Skripten möglich, und wenn Sie Shell am besten kennen, seien Sie mein Gast. Hier ist ein kleines, komplett unerprobtes Shell-Skript, das direkt von meinem Kopf kommt:
%Vor%