[英]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.