最近写程序遇到了些问题,做短网址的时候会遇到
http://url.com/upload/img/2012/08/../../xxxx
这样的网址,想将这些相对路径还原成绝对路径,来保证数据的唯一性,应该转换成下面这样吧
http://url.com/upload/img/xxxx
python 下有没有相应的方法或者相关的包呢?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
比较简单的办法就是使用egenix-mx-base
In [1]: import mx.URL In [2]: url=mx.URL.URL("http://url.com/upload/img/2012/08/../../xxxx") In [3]: print url.url http://url.com/upload/img/xxxx写个正则,比如:
然后把符合这个正则的内容(形如“/abc/../”的),循环替换成“/”:
直接看代码:
import os import urlparse url = "http://url.com/upload/img/2012/08/../../xxxx" url = url.replace(r"/./",r'/'); u = urlparse.urlparse(url) path = os.path.os.path.normpath(u.path); path = path.replace("\\","/") url = urlparse.urljoin(url,path)如果在
linux下,path = path.replace("\\","/")这个可以省略之urlparse库有的。python这种lib非常多,有时不用自己折腾,直接搜