#python
#python
Вопрос:
У меня действительно большой список URL-адресов, и я хотел бы добавить косую черту и точку ( /.
) ко всем URL-адресам, у которых нет части страницы. Вот несколько примеров того, чего я хотел бы достичь:
http://www.example.com
должно бытьhttp://www.example.com/.
http://www.example.com/index.htm
все в порядкеhttp://www.example.com/.
все в порядкеhttp://www.example.com/#
должно бытьhttp://www.example.com/.
http://www.example.com/something
должно бытьhttp://www.example.com/something/.
Одним из исключений является то, что hashes ( #
) также следует заменить точкой.
Я мог бы использовать регулярные выражения для этого, потому что это единственное, что, кажется, приходит мне в голову, но поскольку это очень большой список URL-адресов 10000 , я ищу самый быстрый из возможных методов.
Спасибо
Комментарии:
1. 10 000 — не такое большое число, чтобы запускать его один раз. Это повторяющаяся задача?
2. Как вы теперь называете это
something
именем каталога? Очень возможно, что вы испортили URL-адрес, слепо добавив косую черту, если он не похож на имя файла.3. ПРИВЕТ, Эриско. Это повторяющаяся задача. Я буду очень часто предоставлять эти данные в формате JSON и на разных наборах URL-адресов.
Ответ №1:
Под «частью страницы» вы, похоже, подразумеваете что-то с ‘.htm’ в конце (учитывая ваши 2-й и 5-й примеры), поэтому:
url = url.rstrip('/#.')
if not url.endswith('.htm'):
url = '/.'
Комментарии:
1.
.html
.php
,.asp
, и т. Д.?2. Этот список может стать длинным. Если вы не хотите использовать что-то вроде
if '.' not in url.split('/')[-1]
.