Fügen Sie eine Zeile über jeder Python-Datei in aktuellen und Unterverzeichnissen hinzu

7

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?

    
MartinC 12.08.2011, 12:04
quelle

6 Antworten

4
%Vor%

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

    
Eugene Yarmash 12.08.2011, 12:19
quelle
6
%Vor%

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%     
glenn jackman 12.08.2011 13:27
quelle
5
%Vor%     
Didier Trosset 12.08.2011 12:14
quelle
4

Das wird

  1. rekursiv alle Verzeichnisse durchlaufen, beginnend mit der aktuellen Arbeit Verzeichnis
  2. ändert nur die Dateien, deren Dateiname mit '.py'
  3. endet
  4. Dateiberechtigungen beibehalten (im Gegensatz zu open(filename,'w') .)

dateineingang bietet Ihnen auch die Möglichkeit, Ihre Originaldateien vor dem Ändern zu sichern.

%Vor%     
unutbu 12.08.2011 12:37
quelle
4
%Vor%

Soweit ich weiß, können Sie in python nicht am Anfang oder am Ende der Datei einfügen. Nur neu schreiben oder anhängen.

    
Bogdan 12.08.2011 12:16
quelle
1
  

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%     
David W. 12.08.2011 15:09
quelle

Tags und Links