某些字母結尾我有這樣如何刪除,並開始在Python
foldername/pic.jpg
字符串中的子如何刪除這部分/pic
因此,新的字符串將成爲foldername.jpg
?
編輯:我想更換與/
開始的字符串,並與.
結束與一個點,因此新的文件名只包含foldername.jpg
某些字母結尾我有這樣如何刪除,並開始在Python
foldername/pic.jpg
字符串中的子如何刪除這部分/pic
因此,新的字符串將成爲foldername.jpg
?
編輯:我想更換與/
開始的字符串,並與.
結束與一個點,因此新的文件名只包含foldername.jpg
您可以使用re
模塊。嘗試 -
import re
a = 'foldername/pic.jpg'
out = re.sub(r'/.*\.', r'.', a)
print(out)
謝謝,這個作品完美 – Casper
,如果這是你有,你可以()。像這樣做:
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沒有任何效果。
's.replace(「/ pic」,「」)' – PYPL
要清楚,你想刪除部分以斜槓開始,直到一個點或總是'/ pic'? – Lafexlos
我添加了編輯 – Casper