0

我有一个网址如下:

http://www.example.com/boards/results/current:entry1,current:entry2/modular/table/alltables/alltables/alltables/2011-01-01

在这种情况下,我需要插入一个节点“我们”,如下所示:

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 的方式来使用默认库来完成这个?

编辑:URL 中的“结果”不是固定的 - 它可以是“结果”或“产品”或“价格”等。但是,它总是在“板”之后。

4

1 回答 1

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:])
于 2016-07-19T15:47:04.427 回答