如何在Python中处理配置变量?

时间:2011-03-25 18:15:31

标签: python variables configuration

我是Python的新手,我正在用它做一些测试。

我需要知道的是处理配置变量的最佳方法是什么。

例如,对于此代码:

import twitter
import random
import sqlite3
import time
import bitly_api #https://github.com/bitly/bitly-api-python

class TwitterC:         
    def logtodatabase(self, tweet, timestamp):
        # Will log to the database
        database = sqlite3.connect('database.db') # Create a database file
        cursor   = database.cursor() # Create a cursor
        cursor.execute("CREATE TABLE IF NOT EXISTS twitter(id_tweet INTEGER AUTO_INCREMENT PRIMARY KEY, tweet TEXT, timestamp TEXT);") # Make a table
        # Assign the values for the insert into
        msg_ins       = tweet
        timestamp_ins = timestamp
        values        = [msg_ins, timestamp_ins]
        # Insert data into the table
        cursor.execute("INSERT INTO twitter(tweet, timestamp) VALUES(?, ?)", values)
        database.commit() # Save our changes
        database.close() # Close the connection to the database

在此代码中,如何将“database.db”替换为类外的变量,以获得更好的配置。 ?

最诚挚的问候,

3 个答案:

答案 0 :(得分:2)

您可以使用Python标准库中的ConfigParser

答案 1 :(得分:2)

如果要从命令行传递配置,也可以使用argparse

然后在创建TwitterC类时,您可以传入所需的配置选项。

class TwitterC:
    def __init__(self, database):
        self.database = database
    def logtodatabase(self, tweet, timestamp):
        # Will log to the database
        database = sqlite3.connect(self.database) # Create a database file
        #(...)

答案 2 :(得分:0)

您可以创建包含配置变量的python脚本: config.py:

dbname = 'database.db'
...

你的档案:

import config
database = sqlite3.connect(config.dbname)