Python Fabric从单独的文件加载配置

时间:2012-09-26 21:51:20

标签: python passwords fabric

我在一个.fab文件中使用所有配置的python结构 如何将敏感数据作为密码放入单独的文件,然后导入/加载到fab主文件?

1 个答案:

答案 0 :(得分:2)

在fabfile.py中定义一个简单的函数,从单独的文件中读取密码。有点像:

def new_getpass(username):
    with open("/etc/passwd", "r") as f:
        for entry in [l.split(":") for l in f.readlines()]:
            if entry[0] == username:
                return entry
    return None

如果找不到用户名,则会返回None,并且如果找到用户,则会将整个用户的记录作为列表返回。

显然,我的示例是从/etc/passwd获取数据,但您可以轻松地将此基本功能调整到您自己的文件中:

credentials.dat

database1|abcd1234
database2|zyxw0987

然后上面的代码被修改为使用这样的文件,稍有变化只返回密码(因为我们知道数据库名称):

def getpass(database):
    with open("credentials.dat", "r") as f:
        for entry in [l.split("|") for l in f.readlines()]:
            if entry[0] == username:
                return entry[1]
    return None

虽然不像导入那么简单,但它为您提供了使用纯文本文件存储凭据的灵活性。