• Подстановка значения переменной в вывод

    From Maxim Gribanov@2:5061/133 to All on Thu Aug 17 22:08:24 2023
    Привет, All!

    Подскажите как решить такую задачу? Есть программа на flask, в которую передаю содержимое файла для отображения - cat /etc/xxxx.conf
    Внутри файла текс, в котором упоминаются переменные вида ${имя_переменной} - таких достаточно много.Значение самих переменных можно посмотреть echo ${имя меременной}
    Как можно реализовать вывод текста конфига чтобы подставлялись значения переменных вместо их названия.
    средствами командной строки или скрипта bash/python например.

    Смысл в том что есть python приложение в докере, в образе лежит kubectl который вызываю из flask как subprocess и опрашиваю конфиг в кластере k8s
    и значения самих переменных тоже можно получить в поде в консоли через echo.

    С наилучшими пожеланиями, Maxim.

    --- -Пиши, старик, пиши! Мы тебя не покинем.
    * Origin: Hеужели опять: яйца всмятку, котлеты, цыплята? (2:5061/133)
  • From Denis Lyzhenko@2:5055/73 to Maxim Gribanov on Wed Sep 13 15:47:52 2023

    Hello Maxim!

    17 Aug 23 22:08, you wrote to all:

    Подскажите как решить такую задачу? Есть программа на flask, в которую передаю содержимое файла для отображения - cat /etc/xxxx.conf Внутри
    файла текс, в котором упоминаются переменные вида ${имя_переменной} - таких достаточно много.Значение самих переменных можно посмотреть echo ${имя меременной} Как можно реализовать вывод текста конфига чтобы подставлялись значения переменных вместо их названия. средствами
    командной строки или скрипта bash/python например.

    Смысл в том что есть python приложение в докере, в образе лежит
    kubectl который вызываю из flask как subprocess и опрашиваю конфиг в кластере k8s и значения самих переменных тоже можно получить в поде в консоли через echo.

    Если я тебя понял правильно (а это не факт) то:
    Зареплейсь имена переменных на нужные значения. Или объяви переменные с нужными именами и значениями, используй формат, потом зареплейсь бакс. Переменные окружения можно получить через os.getenv(), эху дергать необязательно:

    =================test_env.txt:

    username = ${USER}
    path = ${PATH}

    =================test_env.py:

    import os


    USER = os.getenv('USER')
    PATH = os.getenv('PATH')


    def main():
    with open('test_env.txt', 'r') as f:
    sample_string = f.read().format(USER=USER, PATH=PATH).replace('$', '')
    print(sample_string)


    if __name__ == '__main__':
    main()

    =================вывод:

    username = denis
    path = /home/denis/PycharmProjects/communigare_first/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/loc al/games:/snap/bin


    ЗЫ я не программист, ногами не пинайте.


    Denis


    --- Обломок Дзю 1.1.15-B20061116 B2 (BSD)
    * Origin: Last Day Station (2:5055/73)