Проблема с локальным URL-адресом для просмотра Python html

#python #html #directory #path

#python #HTML #каталог #путь

Вопрос:

Я использую python для создания HTML-страниц. В корневой папке я создаю две папки A и B. В B есть b1.html , b2.html , и так далее. В папке A у меня есть A1.html и A2.html и так далее. В A1.html , при создании такого HTML-кода я создаю ссылки на bx.html на основе ключевого слова bx , встречающегося в A1.html .

Например:

     stringsCounterNames = re.findall('[([A-Z].*?)]',line) #find the keywords
    stringsCounterNames = list(dict.fromkeys(stringsCounterNames)) #remove duplicates
    counter_path="B_Folder"
    if (len(stringsCounterName)>0):

        for stringCounter in stringsCounterNames:
            targetStr=counter_dic[stringCounter]
            target = '<a href="'   counter_path   '/'   targetStr   '.html">'   stringCounter   '<a>'
            line = re.sub(stringCounter, target, line)
            print(line)
 

В приведенном выше коде будет создана ссылка, подобная этой:
<a href="B_Folder/b1.html">stringCounter</a>
Итак, проблема заключается в том, что при просмотре A1.html , нажав на ссылку, она переходит в: File:rootFolder/A_Folder/B_Folder/b1.html , поэтому ссылка никогда не работает, поскольку и A_Folder, и B_Folder являются дочерними папками в корневой папке.
Я могу переместить папку B_Folder в папку A_Folder, чтобы решить проблему, но я хочу упорядочить файлы. Есть ли способ легко это исправить? Я попытался изменить «counter_path» на «..B_Folder» или «.B_Folder», никогда не работает. Я не могу указать абсолютный путь к нему, поскольку он будет перенесен в какую-либо другую корневую папку. Спасибо!

Ответ №1:

Относительный путь counter_path="../B_Folder" должен работать.

Ваши предложения близки, но оба ..B_Folder и .B_Folder являются допустимыми именами папок; следовательно, относительный путь по-прежнему будет root/A_Folder/..B_Folder или root/A_Folder/.B_Folder . Однако имена папок .. и . относятся к родительской папке и текущей папке соответственно. Добавление .. в отдельную папку (следовательно, изменение пути к root/A_Folder/../B_Folder ) работает: от root/A_Folder , переход к .. изменяет путь к root , с которого вы можете перейти B_Folder .

Дополнительные примеры с . И .. см. В Этом Ответе на сообщение Stack Exchange.