【问题标题】:Storing application settings in Python在 Python 中存储应用程序设置
【发布时间】:2015-11-24 11:33:43
【问题描述】:

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

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

有什么最佳做法吗?

【问题讨论】:

    标签: python parameters settings


    【解决方案1】:

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

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

    把你的参数放在一个类中是好的。您可以添加加载和保存方法以从配置文件(如果存在)读取/覆盖默认值,并使用当前值创建/更新配置文件。

    【讨论】:

      【解决方案2】:

      我认为一种方法是将参数存储在一个类中。

      像这样:

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

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

      像这样:

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

      【讨论】:

      • 我相信你的用法示例的第二行应该是username = Settings.name。此外,__init__() 方法没有任何理由,因为它从未使用过(即使它做了什么)。
      • 我从一个工作示例中获取了这一点,但错过了这一行。谢谢指出!
      【解决方案3】:

      腌制它, 您可以将任何 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)
      

      【讨论】:

        猜你喜欢
        • 2011-01-14
        • 2011-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多