如何获得一个URL中的最后一个斜杠后的一切?
我怎样才能提取Python中的URL中的最后一个斜杠之后? 例如,这些url应该返回以下内容:
URL: http://www.test.com/TEST1 returns: TEST1 URL: http://www.test.com/page/TEST2 returns: TEST2 URL: http://www.test.com/page/page/12345 returns: 12345
我试过urlparse,但是这给了我完整的path文件名,如page/page/12345
。
你不需要花哨的东西,只要看到在标准库中的string方法 ,你可以很容易地分裂你的url之间的文件名部分和其余部分:
url.rsplit('/', 1)
所以你可以简单地得到你感兴趣的部分:
url.rsplit('/', 1)[-1]
多一个(idio(ma)tic)的方式:
URL.split("/")[-1]
rsplit
应该由任务决定:
In [1]: 'http://www.test.com/page/TEST2'.rsplit('/', 1)[1] Out[1]: 'TEST2'
urlparse很好用,如果你想(摆脱任何查询string参数)。
import urllib.parse urls = [ 'http://www.test.com/TEST1', 'http://www.test.com/page/TEST2', 'http://www.test.com/page/page/12345', 'http://www.test.com/page/page/12345?abc=123' ] for i in urls: url_parts = urllib.parse.urlparse(i) path_parts = url_parts[2].rpartition('/') print('URL: {}\nreturns: {}\n'.format(i, path_parts[2]))
输出:
URL: http://www.test.com/TEST1 returns: TEST1 URL: http://www.test.com/page/TEST2 returns: TEST2 URL: http://www.test.com/page/page/12345 returns: 12345 URL: http://www.test.com/page/page/12345?abc=123 returns: 12345
你可以这样做:
head, tail = os.path.split(url)
尾巴将是你的文件名。
extracted_url = url[url.rfind("/")+1:];
partition
和partition
也是这样的事情:
url.rpartition('/')[2]
拆分url并popup最后一个元素url.split('/').pop()
url ='http://www.test.com/page/TEST2'.split('/')[4] print url
输出: TEST2
。