Wie man Zahlen aus dem Dateinamen in Python extrahiert?

8

Ich muss nur die Zahlen aus Dateinamen wie:

extrahieren

GapPoints1.shp

GapPoints23.shp

GapPoints109.shp

Wie kann ich mit Python nur die Zahlen aus diesen Dateien extrahieren? Ich muss das in eine for Schleife einbauen.

    
Borealis 23.12.2012, 03:42
quelle

3 Antworten

18

Sie können reguläre Ausdrücke verwenden:

%Vor%

Dann, um die Zeichenfolgen zu erhalten, die übereinstimmen:

%Vor%

Dies wird eine Liste von Strings zurückgeben, die die Zahlen enthalten. Wenn Sie Ganzzahlen tatsächlich möchten, können Sie int :

verwenden %Vor%

Wenn in jedem Dateinamen nur 1 Zahl vorhanden ist, können Sie regex.search(filename).group(0) verwenden (wenn Sie sicher sind, dass eine Übereinstimmung erzeugt wird). Wenn keine Übereinstimmung gefunden wird, erzeugt die obige Zeile einen Attributfehler, der besagt, dass NoneType nicht das Attribut group hat.

    
mgilson 23.12.2012, 03:45
quelle
3

Sie haben also keine Beschreibung hinterlassen, wo diese Dateien sind und wie Sie sie erhalten, aber ich nehme an, dass Sie die Dateinamen mit os Modul.

Wenn Sie die Zahlen aus den Namen herausholen möchten, verwenden Sie am besten reguläre Ausdrücke mit re . , etwas in der Art:

%Vor%

Um dies dann in eine for-Schleife einzufügen, würden Sie diese Funktion für jeden Dateinamen ausführen:

%Vor%

oder etwas in dieser Richtung.

    
jdotjdot 23.12.2012 03:45
quelle
2

Wenn es nur eine Nummer gibt:

%Vor%     
kelwinfc 24.12.2012 12:53
quelle

Tags und Links