本文實例講述了Python實現將絕對URL替換成相對URL的方法。分享給大家供大家參考。具體分析如下:
一、問題:
公司一個項目需要上傳圖片,一開始同事將圖片上傳後結合當前主機拼成了一個絕對的URL(http://192.168.1.1:888/m/getimg?filename=xxx.jpg)由於同時給手機終端提供接口,在手機終端會引起一些bug,改完代碼後要求將以前的uri替換成相對的URL(/m/getimg?filename=xxx.jpg),由於圖片是用img標簽嵌入到內容同時用a標簽括起顯示大圖的,所以需要讀取數據庫並對內容進行替換
二、解決方法:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #!/usr/bin/env python #-*- coding:utf-8 -*- # # # author : cold night # email : [email protected] # import pymongo import re from StringIO import StringIO conn = pymongo.Connection() db = conn.test def replace_url(): regex = re.compile(r'([href¦src])=["¦']http://.*?(/m/getimg?.*?)["¦']') results = db['test'].find() db_coll = db['test'] def replace(r): content = r.get('content') if not content: return content = StringIO(content) content.seek(0) result = StringIO() for line in content.readlines(): t = regex.sub(r'1="2"', line) result.write(t) result.seek(0) content = result.read() if content: r['content'] = content _id = r.get('_id') db_coll.update({'_id':_id}, r) results = [replace(i) for i in results] if __name__=="__main__":replace_url()希望本文所述對大家的Python程序設計有所幫助。