Python 重命名字符串

Python renaming strings

有点愚蠢的问题,但我被卡住了。所以我得到了这个

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

给出以下输出:

sun5_face_righteye

我怎样才能继续剥离或拆分字符串,以便我只得到:

righteye

谢谢

你可以试试:

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

编辑1:

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

编辑2:

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

当您查看文件名时,您可能希望使用 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) 提取文件路径和扩展名,取索引 0 得到的只是没有扩展名的文件路径。在 _ 上拆分它并取最后一个元素得到你需要的 righteye

编辑: 作为对评论的回应,您可以使用以下方法获得 "face_righteye":

import os

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

print fname

将我们的索引从 -1 更改为 -2: 得到最后两个元素的列表(而不是单独的最后一个元素)。使用 "_".join 用下划线重新组合这些元素。