我的网址如下:
http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01
我需要插入一个节点' us'在这种情况下,如下:
http://www.example.com/boards/results/us/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01
使用Python的urlparse库,我可以按如下方式进入路径:
path = urlparse(url).path
...然后使用一个复杂而丑陋的例程,包括基于斜杠拆分路径并插入新节点然后重构URL
>>> path = urlparse(url).path
>>> path.split('/')
['', 'boards', 'results', 'current:entry1,current:entry2', 'modular', 'table', 'alltables', 'alltables', 'alltables', '2011-01-01']
>>> ps = path.split('/')
>>> ps.insert(4, 'us')
>>> '/'.join(ps)
'/boards/results/current:entry1,current:entry2/us/modular/table/alltables/alltables/alltables/2011-01-01'
>>>
使用默认库是否有更优雅/ pythonic的方法来实现这一目标?
编辑: 结果'在网址中没有修复 - 它可以是'结果'或者'产品'或者'价格'等等。但是,它总是在' board'。
之后答案 0 :(得分:0)
path = "http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01"
replace_start_word = 'results'
replace_word_length = len(replace_start_word)
replace_index = path.find(replace_start_word)
new_url = '%s/us%s' % (path[:replace_index + replace_word_length], path[replace_index + replace_word_length:])