gpt4 book ai didi

python - 如何在Python中根据某些条件剪切字符串的末尾?

转载 作者:行者123 更新时间:2023-12-01 09:34:26 24 4
gpt4 key购买 nike

我已经搜索了可能的方法,但我还无法将它们混合起来。我有一个字符串,它是图像的路径。

myString= "D:/Train/16_partitions_annotated/partition1/images/AAAAA/073-1_00191.jpeg"

我想要做的是将 images 替换为 IMAGES 并剪掉末尾的 073-1_00191.jpeg 部分。因此,新的字符串应该是

newString = "D:/Train/16_partitions_annotated/partition1/IMAGES/AAAAA/"

并且切碎的部分(073-1_00191.jpeg)将单独使用作为处理后图像的名称。函数 .replace() 在这里不起作用,因为我需要提供 pathfilename 作为单独的参数。

我想要这样做的原因是我通过图像的路径访问图像并对它们执行一些操作,保存它们时我需要创建另一个目录(在本例中为IMAGES)和之后的下一个目录(在本例中为 AAAAA)应保持不变(以及相应图像的名称)。

请注意,图像可能具有不同的名称和扩展名

如果我这边有不清楚的地方,请询问,我会尽力澄清

最佳答案

正如评论中提到的,os.path对于操作以字符串表示的路径很有用。

>>> import os

>>> myString= "D:/Train/16_partitions_annotated/partition1/images/AAAAA/073-1_00191.jpeg"

>>> dirname, basename = os.path.split(myString)

>>> dirname
'D:/Train/16_partitions_annotated/partition1/images/AAAAA'

>>> basename
'073-1_00191.jpeg'

此时,您希望如何处理大写的“图像”取决于您更广泛的目标。如果您只想将特定单词大写,dirname.replace('images', 'IMAGES') 就足够了。但您似乎要求一种更通用的方法来大写绝对路径中的倒数第二个目录:

>>> def cap_penultimate(dirname):
... h, t = os.path.split(dirname)
... hh, ht = os.path.split(h)
... return os.path.join(hh, ht.upper(), t)
...

>>> cap_penultimate(dirname)
'D:/Train/16_partitions_annotated/partition1/IMAGES/AAAAA'

关于python - 如何在Python中根据某些条件剪切字符串的末尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com