从 Python 中的配置文件中读取令牌

Read Tokens from config file in Python

我是 Python 的新人,我有一个问题要问你:

我正在使用 Python Twitter 工具来流式传输和存储推文,并希望从格式不同的文件 (config.py) 中读取访问令牌...:[=​​12=]

from twitter import *

WORLD_WOE_ID = 1
ARGENTINA_WOE_ID = 23424747

CONSUMER_KEY = "xxxxxx"
CONSUMER_SECRET = "xxxxx"
ACCESS_TOKEN_KEY = "xxxxx"
ACCESS_TOKEN_SECRET = "xxxxx"

我如何读取此文件并仅解析我需要的标记?

我尝试使用 "file.readline()" 但该命令给我带来了完整的行(包括 "CONSUMER_KEY = ..." 等),我只需要引号之间的键 :S

谢谢你,抱歉我的英语不好!

您可以简单地导入变量。

将此文件另存为 config.py

然后您可以按如下方式导入消费者密钥:

from config import CONSUMER_KEY

print(CONSUMER_KEY)
>> XXXXXXX

确保包含这些文件的文件夹中有一个 __init__.py 文件。

更好的做法是从它所在的文件夹中导入它。

from folder_name.config import CONSUMER_KEY

也可以,在__init__.py中导入,然后用

获取
from folder import CONSUMER_KEY

@Daniel Lee 在导入方面的回答是正确的,但是您可以考虑使用环境变量来提高安全性。主要是防止将这些设置提交给任何人都可能查看的源代码管理。

如果您运行从命令行启动它,您可以将它们自己设置在一个文件中:

# yourfile.sh

WORLD_WOE_ID = 1
ARGENTINA_WOE_ID = 23424747

CONSUMER_KEY = "xxxxxx"
CONSUMER_SECRET = "xxxxx"
ACCESS_TOKEN_KEY = "xxxxx"
ACCESS_TOKEN_SECRET = "xxxxx"

然后在你 运行 你的程序之前做:

source yourfile.sh

或者您可以在 运行 您的程序之前指定它们:

ACCESS_TOKEN_KEY=xxxxx ACCESS_TOKEN_SECRET=xxxxx python yourscript.py

或者,如果这是基于网络的,您需要在网络服务器配置或 WSGI 配置中设置它们。

如何将它们放入您的程序中也取决于您如何 运行设置它。大多数情况下你应该能够做到

from os import environ
token_key = environ.get('ACCESS_TOKEN_KEY')
# etc ...

或者例如,如果您使用的是 Flask:

from flask import request
token = request.environ.get('ACCESS_TOKEN_KEY')

(我确定 Django 有类似的东西,但我不太熟悉)