如何从文本文件中读取数据库凭据?

时间:2018-12-13 00:02:37

标签: python database file grafana configparser

如何从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 :(得分:0)

尝试使用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()读取文件。如果再次调用它,则没有任何内容可供阅读。