本文實例講述了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標簽括起顯示大圖的,所以需要讀取數據庫并對內容進行替換
二、解決方法:
#!/usr/bin/env python#-*- coding:utf-8 -*-### author : cold night# email : wh_linux@126.com#import pymongoimport refrom StringIO import StringIOconn = pymongo.Connection()db = conn.testdef 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程序設計有所幫助。
新聞熱點
疑難解答