Как я могу прочитать учетные данные базы данных из текстового файла? - PullRequest
0 голосов
/ 13 декабря 2018

Как я могу прочитать учетные данные базы данных из текстового файла в моем скрипте Python?Когда Grafana ищет цель, он должен перейти к текстовому файлу, получить учетные данные БД и выполнить его.

import cx_Oracle
import pprint
con = cx_oracle.connect(user= "", password="", sid= "")
con= cur.cursor()
cur.execute("SELECT ****FROM TEMP")
rows = cur.fetchall()
columns = cur.description()

Есть ли способ передать эти учетные данные БД в сценарий из моего текстового файла?

1 Ответ

0 голосов
/ 13 декабря 2018

Попробуйте использовать import sys и прочитать переданные аргументы sys.argv, который является списком.Переданные параметры начинаются со второго (индекс 1)

Примером является следующий.

import sys

if __name__ == "__main__":
    print(type(sys.argv))
    if len(sys.argv) <2:
        print("Expecting file credentials")
        exit(1)
    f = open(sys.argv[1])
    for line in f:
        print(line[:len(line)-1]) #avoid printing new line char

Укажите, каким должен быть ваш файл учетных данных для извлечения полей.

РЕДАКТИРОВАТЬ : входной файл представляет собой JSON

import sys
import json

if __name__ == "__main__":
    #print(type(sys.argv))
    if len(sys.argv) <2:
        print("Expecting file credentials")
        exit(1)
    f = open(sys.argv[1])
    #for line in f:
    #    print(line[:len(line)-1]) #avoid printing new line char
    ###READ FROM JSON
    data = f.read()
    print("---------")
    print(data)
    content = json.loads(data)
    print(content["postgres"]["host"])
    print(content["postgres"]["password"])

Обратите внимание на одну вещь, которая вызывает у меня проблемы: вы можете прочитать файл один раз с помощью f.read().Если вы позвоните еще раз, читать нечего.

...