【问题标题】:Python renaming stringsPython重命名字符串
【发布时间】:2017-05-26 03:14:16
【问题描述】:

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

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

给出以下输出:

sun5_face_righteye

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

righteye

谢谢

【问题讨论】:

  • 显示image_files的内容
  • -上再次拆分,得到第三个元素
  • @MosesKoledoye images_files 给眼睛/sun5_face_righteye.jpg
  • @Noelkd 完成了这项工作!谢谢,但我面临另一个问题,大多数图像的名称是:57268-face-_tracker_face_righteye,在这种情况下,我如何只得到右眼?
  • 由于您正在使用路径,因此您应该考虑使用os.path,尤其是对于更复杂的操作

标签: python split filenames strip renaming


【解决方案1】:

你可以试试:

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

【讨论】:

  • 做的工作!谢谢,但我面临另一个问题,大多数图像都是名称:xxxxx-face-_tracker_face_righteye,在这种情况下,我如何只得到右眼? xxxx 正在增加数字
  • @TiagoSilva 更新了我的答案。
  • 对不起,如果我很烦人,但我现在遇到了不同的情况。从“sun5_face_righteye”或“57268-face-_tracker_face_lefteye”我需要删除“_face_righteye”或“_face_lefteye”是否可能? @Harsha Biyani
  • @TiagoSilva : Edied ans again.
  • 再次完美!救生员@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) 提取文件路径和扩展名,采用索引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 将这些元素与下划线重新组合。

【讨论】:

  • 对不起,如果我很烦人,但我现在遇到了不同的情况。从 sun5_face_righteye 或 57268-face-_tracker_face_lefteye 我需要删除 "_face_righteye" 或 "_face_lefteye" 可能吗? @ason​​gtoruin
  • @TiagoSilva 不用担心 - 我已经为你更新了这个(虽然没有前导下划线)
猜你喜欢
  • 1970-01-01
  • 2017-09-26
  • 2020-05-05
  • 2022-10-06
  • 1970-01-01
  • 2021-12-29
  • 2011-12-27
  • 2019-06-27
  • 1970-01-01
相关资源
最近更新 更多