更好的方法来更改由下划线分隔的字符串中的特定字符,而不使用

2024-09-30 18:13:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些名为centerOne_camera_2_2018-04-11_15:11:21_2.0.jpg的文件。我想把最后一个字符串image_name.split('_')[5].split('.')[0]改成其他字符串。我似乎找不到一个整洁的方法来做这件事,最后做了以下非常粗糙的事情

 new_name = image_base.split('_')[0] + image_base.split('_')[1] + image_base.split('_')[2] + image_base.split('_')[3] + image_base.split('_')[4] + frameNumber

也就是说,我的输出应该是centerOne_camera_2_2018-04-11_15:11:21_<some string>.0.jpg 如果有更好的办法,我们将不胜感激。注意:我想保留字符串的其余部分


Tags: 文件方法字符串nameimagenewbasestring
2条回答

你可以试试rsplit

"centerOne_camera_2_2018-04-11_15:11:21_2.0.jpg".rsplit("_", 1)
['centerOne_camera_2_2018-04-11_15:11:21', '2.0.jpg']

我想你可能在找这个:

>>> "centerOne_camera_2_2018-04-11_15:11:21_2.0.jpg".rpartition("_")
('centerOne_camera_2_2018-04-11_15:11:21', '_', '2.0.jpg')

这是最后一个元素。但从我收集的评论来看,你想在delimitern处拆分

>>> n = 3
>>> temp = "centerOne_camera_2_2018-04-11_15:11:21_2.0.jpg".split("_",n)
>>> "_".join(temp[:n]),temp[n]
('centerOne_camera_2', '2018-04-11_15:11:21_2.0.jpg')

我不确定您反对使用+的理由是什么,但如果您愿意,可以这样做:

>>> temp="centerOne_camera_2_2018-04-11_15:11:21_2.0.jpg".rpartition("_")
>>> "{0}<some_string>{2}".format(*temp)
'centerOne_camera_2_2018-04-11_15:11:21<some_string>2.0.jpg'

相关问题 更多 >