2017-01-11 11 views
1

親切な質問ですが、私は立ち往生しました。Pythonの名前を変更する文字列

sun5_face_righteye 

は、どのように私は、文字列を除去または分割保つことができるので、私は取得のみ:

righteye 

+0

は ''に再びimage_files' –

+0

スプリット、それをの内容を表示する-'および/三要素 – Noelkd

+0

@MosesKoledoyeのimages_filesが目を与え得るsun5_face_righteye.jpg –

答えて

0
ありがとうだから私は、次の出力が得られます。この

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

を得ました

お試しください:

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

は仕事をします!ありがとう、しかし、別の問題に直面しているIm、ほとんどの画像は名前です:xxxxx-face-_tracker_face_righteye、この場合、私はどのように正しいアイだけを取得しますか? xxxxが増加しています –

+0

@TiagoSilva私の答えを更新しました。 – Harsha

+0

これで完璧に動作します!あなたより! @Harsha Biyani –

2

あなたはファイル名を見ていると、あなたは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ファイルパスと拡張子をトラップし、インデックス0は拡張子のないファイルパスを取得します。 _でこれを分割し、最後の要素を取ると、righteyeが必要になります。

EDIT:コメントを受けて、あなたは以下を使用して「face_righteye」を得ることができますが:

import os 

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

print fname 

-1から-2:にGoogleのインデックスを変更ではなく(私たちの最後の二つの要素のリストを取得します最後の要素のみ)。 "_".joinを使用すると、これらの要素がアンダースコアで再結合されます。

+0

申し訳ありません私は迷惑な場合は、私は今異なる状況になった。 sun5_face_righteyeまたは57268-face-_tracker_face_lefteye "_face_righteye"または "_face_lefteye"を削除する必要がありますか? @ason​​gtoruin –

+0

@TiagoSilvaは心配しない - 私はあなたのためにこれを更新しました(ただし、先頭のアンダースコアはありません) – asongtoruin