python什么方法能把../这样的网址转换成真实地址呢?,python成真,最近写程序遇到了些问题,
python什么方法能把../这样的网址转换成真实地址呢?,python成真,最近写程序遇到了些问题,
最近写程序遇到了些问题,做短网址的时候会遇到
http://url.com/upload/img/2012/08/../../xxxx
这样的网址,想将这些相对路径还原成绝对路径,来保证数据的唯一性,应该转换成下面这样吧
http://url.com/upload/img/xxxx
python 下有没有相应的方法或者相关的包呢?
urlparse库有的。python这种lib非常多,有时不用自己折腾,直接搜
写个正则,比如:
\/[^/]+\/\.\.\/
然后把符合这个正则的内容(形如“/abc/../”的),循环替换成“/”:
http://url.com/upload/img/2012/08/../../xxxxhttp://url.com/upload/img/2012/../xxxx // <= 替换http://url.com/upload/img/xxxx // <= 再替换
直接看代码:
import osimport urlparseurl = "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("\\","/") 这个可以省略之
比较简单的办法就是使用egenix-mx-base
In [1]: import mx.URLIn [2]: url=mx.URL.URL("http://url.com/upload/img/2012/08/../../xxxx")In [3]: print url.urlhttp://url.com/upload/img/xxxx
import osimport urlparseURL = "http://url.com/upload/img/2012/08/../../xxxx"u = urlparse.urlparse(URL)print os.path.realpath(u.path)
编橙之家文章,
相关内容
- https类型网页python scrapy能爬取吗,pythonscrapy,想获得ht
- Python2.7安装MySQLdb报failed with exit status错误,python2.7mys
- python折算汇率计算的小问题,python折算汇率,碰到了一个
- Python方法要加载1G数据到数组内如何操作,python数组,内
- 基于python2如何将txt内utf-8转换成中文,python2utf-8,在py
- Python默认参数调用疑惑,python参数疑惑,python文档中关于
- Django学习遇到瓶颈要如何继续学习,django瓶颈,RT,目前
- python class中的self _init_(self,param1,param2)怎么回事?,p
- Python switch case实现操作是怎样的,pythonswitch,Python里怎么
- Python模拟登录cookie有验证码要怎么做才能抓到内容,
评论关闭