2017-01-11 4 views
1

Ein bisschen dumm Frage, aber ich steckte fest. Also habe ich diesePython umbenennen Strings

print (image_files[index].split(".")[0]).split("/")[1].split 

die folgende Ausgabe gibt:

sun5_face_righteye 

Wie kann ich Strippen oder die Zeichenfolge Aufspalten so erhalte ich nur:

righteye 

Danke

+0

Zeigen Sie den Inhalt des 'image_files' –

+0

es Split wieder auf' -' und das dritte Element – Noelkd

+0

@MosesKoledoye images_files gibt Augen/sun5_face_righteye.jpg –

Antwort

0

können Sie versuchen:

>>> s = "sun5_face_righteye" 
>>> s.split("_")[2] 
'righteye' 

Edit1:

>>> s = "xxxxx-face-_tracker_face_righteye" 
>>> s.split("_")[-1] 
'righteye' 

Edit2:

>>> s = "sun5_face_righteye" 
>>> s.split("_face_")[0] 
'sun5' 
>>> s = "57268-face-_tracker_face_lefteye" 
>>> s.split("_face_")[0] 
'57268-face-_tracker' 
+0

erledigt den Job! Danke, aber ich sehe ein anderes Problem, die meisten Bilder sind Name: xxxxx-Gesicht-_tracker_face_righteye, in diesem Fall, wie bekomme ich nur die Righteye? xxxx sind steigende Zahlen –

+0

@TiagoSilva Aktualisiert meine Antwort. – Harsha

+0

Jetzt funktioniert es perfekt! Als du! @ Harsha Biyani –

2

Wie Sie bei Dateinamen suchen, möchten Sie vielleicht os.path.splitext verwenden:

import os 

fpath = "eyes/sun5_face_righteye.jpg" 
fname = os.path.splitext(fpath)[0].split("_")[-1] 

print fname 

os.path.splitext(fname) ex Trakt den Dateipfad und die Erweiterung, wobei der Index 0 davon nur den Dateipfad ohne die Erweiterung abruft. Teilen Sie dies auf _ und nehmen Sie das letzte Element wird die righteye Sie benötigen.

EDIT: Als Reaktion auf den Kommentar, könnten Sie bekommen „face_righteye“ die Verwendung von folgenden:

import os 

fpath = "eyes/sun5_face_righteye.jpg" 
fname = "_".join(os.path.splitext(fpath)[0].split("_")[-2:]) 

print fname 

Ändern unserem Index von -1 zu -2: bringt uns eine Liste der letzten beiden Elemente (statt das letzte Element allein). Mit "_".join werden diese Elemente erneut mit einem Unterstrich kombiniert.

+0

Entschuldigung Wenn ich nervig bin, aber ich habe jetzt eine andere Situation. Von sun5_face_righteye oder 57268-face-_tracker_face_lefteye Ich muss "_face_righteye" oder "_face_lefteye" entfernen Ist das möglich? @asongtoruin –

+0

@TiagoSilva keine Sorgen - Ich habe dies für Sie aktualisiert (obwohl ohne führenden Unterstrich) – asongtoruin