我正在使用 Python 开发一个专注于文本处理的简单应用程序。为此,我需要用户添加一些信息并配置一堆变量(如果需要)。所以我正在考虑有一个配置文件。我已经阅读了很多相关内容(主要是 ini 文件和 configparser),但我有一些问题:
- 放置配置文件的最佳位置在哪里?使用appdirs是否正确为此?
- 由于我需要默认值,我应该如何处理?我应该在第一次启动时生成它吗?有没有项目在做这个?我想看一下,但没找到。
最佳答案
Is it right to use appdirs for this?
如果您打算在不同平台上安装应用程序,那么在我看来,使用 appdirs
是一个合适的选择。
As I need default values, how should I handle this?
默认配置,假设它不会根据安装、用户、平台等而改变...将其放在应用程序目录中是有意义的。
否则,也使用 appdirs
。
至于格式,如果配置文件仅由应用程序更改(而不是由用户直接更改,例如在文本编辑器中),则只需使用您觉得更舒服的格式即可。在机器看来,它们之间通常没有太大区别。尽管某些解决方案可能比其他解决方案更优化,但您自己会发现速度相当快。任何东西都足够好,无论是 .ini
、.json
、.yml
等......
现在,如果您希望用户手动更改配置,那么您最好采用足够简单的格式,这样可以减少困惑的可能性。在这种情况下,我通常使用结构非常简单的 yaml
。它被解析为 python dict
并且通常可以正确推断类型。
示例
# user_config.yml
# Some example configuration
paulo:
age: 25
city: Berlin
david:
age: 29
city: Oviedo
<小时/>
# app.py
# loading the configuration
import yaml
user_config = yaml.load(open('user_config.yml', 'r'))
user_config
{'david': {'age': 29, 'city': 'Oviedo'},
'paulo': {'age': 25, 'city': 'Berlin'}}
关于python - 在 Python 中处理配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913979/