簡體   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