2017-06-15 60 views
0

某些字母結尾我有這樣如何刪除,並開始在Python

foldername/pic.jpg 

字符串中的子如何刪除這部分/pic因此,新的字符串將成爲foldername.jpg

編輯:我想更換與/開始的字符串,並與.結束與一個點,因此新的文件名只包含foldername.jpg

+0

's.replace(「/ pic」,「」)' – PYPL

+0

要清楚,你想刪除部分以斜槓開始,直到一個點或總是'/ pic'? – Lafexlos

+0

我添加了編輯 – Casper

回答

2

您可以使用re模塊。嘗試 -

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

謝謝,這個作品完美 – Casper

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

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沒有任何效果。