У меня есть список, в котором есть значения URL, такие как:
http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg
Как мне изменить _s в конце на _m для всех случаев?
_s
_m
Попробуйте это:
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg" str = str.replace("_s","_m")
Если вы хотите быть уверены, что изменена только часть las, и вы знаете, что .jpg файлы, которые вы можете использовать:
.jpg
str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg" str = str.replace("_s.jpg","_m.jpg")
Чтобы дать больше контекста и избежать изменений в середине URL.
Или, если вы хотите сделать это для любого расширения файла и убедиться, что ничего в строке не изменено, кроме последней части.
import re str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg" re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.png" re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.gif" re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.zip" re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str)
Выход:
>>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.jpg" >>> re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) 'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.jpg' >>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.png" >>> re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) 'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.png' >>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.gif" >>> re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) 'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.gif' >>> str = "http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_s.zip" >>> re.sub("(.*)_s(\.[a-z0-9]{1,4})$", r"\1_m\2", str) 'http://farm6.static.flickr.com/5149/5684108566_aed8b9b52d_m.zip'