操控目录路径在Python
-
26-09-2019 - |
题
基本上我有这个当前的URL,这等重点,我要合并到一个新的URL,但也有三种不同的情况。
假设当前URL为localhost:32401 / A / B /富
如果键是酒吧然后我想本地主机返回:32401 / A / B /酒吧
如果以斜线键开始并且/ A /酒吧然后我想本地主机返回:32401 / A /酒吧
最后,如果关键是它自己独立的网址,然后我只想返回键= http://foo.com/栏 - > http://foo.com/bar
我假设有一种方法来在前两种情况下至少做,而无需手动操作字符串,但没有我的os.path中模块中立即跳了出来。
解决方案
我假设有一种方法来在前两种情况下至少做,而无需手动操作字符串,但没有我的os.path中模块中立即跳了出来。
这是因为要使用 urllib.parse
(对于Python 3 .X)或 urlparse
(对于Python 2.x的)来代替。
我没有与它太多的经验,虽然如此,这里的使用str.split()
和str.join()
片段。
urlparts = url.split('/')
if key.startswith('http://'):
return key
elif key.startswith('/'):
return '/'.join(urlparts[:2], key[1:])
else:
urlparts[len(urlparts) - 1] = key
return '/'.join(urlparts)
其他提示
字符串在Python对象均具有startswith和方法的endsWith应该能够让你那里。事情是这样的吧?
def merge(current, key):
if key.startswith('http'):
return key
if key.startswith('/'):
parts = current.partition('/')
return '/'.join(parts[0], key)
parts = current.rpartition('/')
return '/'.join(parts[0], key)
不隶属于 StackOverflow