Python重命名字符串

时间:2017-01-11 10:58:10

标签: python split filenames strip renaming

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

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

给出以下输出:

sun5_face_righteye

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

righteye

谢谢

2 个答案:

答案 0 :(得分: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)提取文件路径和扩展名,其中索引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将这些元素与下划线重新组合。

答案 1 :(得分:0)

你可以尝试:

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

<强> EDIT1:

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