在 Python 中存储应用程序设置

Storing application settings in Python

我正在寻找一种将我的设置存储在 Python 中的智能方法。我只想设置一些参数并在代码中使用它。

我找到了这个 Best practices for storing settings and this Storing application settings in C#,但我认为这不能帮助我解决问题。我想存储一些参数,例如年龄体重和姓名等,并轻松访问它们。

有什么最佳实践吗?

我认为一种方法是将参数存储在 class。

像这样:

class Settings:

    # default settings
    name = 'John'
    surname = 'Doe'
    age = 45
    gender = 'Male'

另一种方法是将这些变量存储在配置文件中,然后从中读取。但我发现前者更容易,因为您可以更轻松地访问代码。

像这样:

from settings import *
settings = Settings()
username = settings.name

如果您喜欢 windows .ini 文件格式,Python 带有 ConfigParser (python3 configparser) 来解释它们。文档使这看起来比实际更复杂 - 跳到最后看一个简单的例子。

您还可以使用(滥用?)import 来加载 settings.py 文件。

将您的参数放在 class 中很好。您可以添加加载和保存方法以从配置文件(如果存在)读取/覆盖默认值,并使用当前值 create/update 配置文件。

腌制它, 您可以在文件中存储任何 python 数据结构并稍后加载它

import pickle
data = dict(user='Homer', age=45, brain=None)

#save data to file
with open('setting.cfg', 'wb') as f: 
            pickle.dump(data, f)

#load data from file
with open('setting.cfg', 'rb') as f: 
            data = pickle.load(f)