如何删除以Python中的某些字符开头和结尾的子字符串

时间:2017-06-15 05:04:32

标签: python string

我有一个像这样的字符串

foldername/pic.jpg

如何删除此部分/pic,以便新字符串变为foldername.jpg

编辑:我想替换任何以/开头并以.结尾的字符串(。),以便新文件名只包含foldername.jpg

3 个答案:

答案 0 :(得分:2)

您可以使用re模块。试试 -

import re
a = 'foldername/pic.jpg'
out = re.sub(r'/.*\.', r'.', a)
print(out)

答案 1 :(得分:1)

如果这就是你所拥有的,你可以这样做:

name = 'foldername/pic.jpg'
root = name.split('/')[0]
ext = name.split('.')[1]
name = root + ext

但是如果要拆分文件路径,最好使用os.path命令,例如:

import os
name = 'foldername/pic.jpg'
root = os.path.dirname(name)
_, ext = os.path.splitext(name)
name = root + '.' + ext

这两种情况都会在这些情况下返回字符串foldername.jpg,但os.path命令更灵活

答案 2 :(得分:1)

要获得更通用的解决方案,请尝试正则表达式。 在您的具体示例中,我将假设您要删除以' /'开头的子字符串,并以' c'结尾。 (即/ pic)。

In [394]: import re
In [395]: re.sub(r'(.+)\/\w+c(.+)', r'\1\2', 'foldername/pic.jpg')
Out[395]: 'foldername.jpg'

请注意,第二个参数需要原始字符串封装器r' ',如果要插入变量,否则\ 1或\ 2无效。