2017-01-11 4 views
1

Kinda question stupide mais je suis resté coincé. Donc, je suis arrivé cePython renommer les chaînes

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

qui donne le résultat suivant:

sun5_face_righteye 

Comment puis-je conserver le décapage ou diviser la chaîne si je reçois seulement:

righteye 

Merci

+0

Afficher le contenu de 'image_files' –

+0

diviser à nouveau sur' -' et obtenir le troisième élément – Noelkd

+0

@MosesKoledoye images_files donne des yeux/sun5_face_righteye.jpg –

Répondre

0

vous pouvez essayer:

>>> 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

fait le travail! Merci, mais Im face à un autre problème, la plupart des images sont nom: xxxxx-face-_tracker_face_righteye, dans ce cas, comment puis-je obtenir seulement le droit? xxxx sont des nombres croissants –

+0

@TiagoSilva Mis à jour ma réponse. – Harsha

+0

Maintenant, cela fonctionne parfaitement! Que toi! @Harsha Biyani –

2

Comme vous regardez les noms de fichiers, vous pouvez utiliser os.path.splitext:

import os 

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

print fname 

os.path.splitext(fname) ex Tracts le chemin de fichier et l'extension, en prenant l'index 0 de cela obtient juste le chemin de fichier sans l'extension. Découper ceci sur _ et en prenant le dernier élément obtient le righteye dont vous avez besoin.

EDIT: En réponse au commentaire, vous pourriez obtenir « face_righteye » en utilisant les éléments suivants:

import os 

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

print fname 

Changer notre index de -1 à -2: nous obtient une liste des deux derniers éléments (plutôt que le dernier élément seul). L'utilisation de "_".join combine ces éléments avec un trait de soulignement.

+0

Désolé Si je suis ennuyeux, mais j'ai une situation différente maintenant. De sun5_face_righteye ou 57268-face-_tracker_face_lefteye Je dois supprimer "_face_righteye" ou "_face_lefteye" Est-ce possible? @asongtoruin –

+0

@TiagoSilva pas de soucis - J'ai mis à jour ceci pour vous (mais sans un soulignement principal) – asongtoruin