繁体   English   中英

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

[英]How to remove a substring that starts and ends with certain characters in Python

我有这样的字符串

foldername/pic.jpg

如何删除/pic这部分,使新字符串变为foldername.jpg

编辑:我想替换以/开头并以结束的任何字符串. 带有点(。),因此新文件名仅包含foldername.jpg

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

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

如果仅此而已,则可以这样操作:

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命令更加灵活

有关更通用的解决方案,请尝试使用正则表达式。 在您的特定示例中,我假设您要删除以'/'开头并以'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无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM