Python 中常用的配置文件格式有多种,每种格式都有其特点和适用场景。以下是常见的配置文件类型及简要说明:
1. INI 格式
- 特点:简单键值对,支持分节(Section)。
- 文件扩展名:
.ini,.cfg - Python 库:内置
configparser模块。 - 示例:
ini[database]host = localhostport = 3306user = adminpassword = secret - 适用场景:轻量级配置,结构分层清晰。
2. JSON 格式
- 特点:结构化数据,支持嵌套,易读性高。
- 文件扩展名:
.json - Python 库:内置
json模块。 - 示例:
json{"database": {"host": "localhost","port": 3306,"credentials": {"user": "admin","password": "secret"}}} - 适用场景:复杂数据结构,需跨语言兼容时。
3. YAML 格式
- 特点:易读性强,支持复杂结构(列表、字典),支持注释。
- 文件扩展名:
.yaml,.yml - Python 库:需安装
PyYAML库。 - 示例:
yamldatabase:host: localhostport: 3306credentials:user: adminpassword: secret - 适用场景:需要高可读性和复杂配置时。
4. TOML 格式
- 特点:专为配置设计,支持更丰富的数据类型(如日期、时间)。
- 文件扩展名:
.toml - Python 库:需安装
tomlkit或tomli。 - 示例:
toml[database]host = "localhost"port = 3306[database.credentials]user = "admin"password = "secret" - 适用场景:需要强类型或复杂配置的场景。
5. 环境变量
- 特点:通过系统环境变量传递配置,适合动态环境。
- Python 库:内置
os模块。 - 示例:
bash# 终端中设置export DB_HOST="localhost"export DB_PORT=3306pythonimport osdb_host = os.getenv("DB_HOST")db_port = int(os.getenv("DB_PORT")) - 适用场景:容器化部署、多环境配置(开发/生产)。
6. XML 格式
- 特点:结构化标记语言,支持复杂嵌套。
- 文件扩展名:
.xml - Python 库:内置
xml.etree.ElementTree。 - 示例:
xml<database><host>localhost</host><port>3306</port><credentials><user>admin</user><password>secret</password></credentials></database> - 适用场景:需要与 Java 等其他语言交互时。
7. Python 脚本(.py 文件)
- 特点:直接编写 Python 代码作为配置。
- 文件扩展名:
.py - 示例:
python# config.pyDATABASE = {"host": "localhost","port": 3306,"user": "admin","password": "secret"}pythonfrom config import DATABASE - 适用场景:需要动态生成配置或复杂逻辑时。
8. .env 文件
- 特点:类似环境变量,但存储在文件中。
- 文件扩展名:
.env - Python 库:需安装
python-dotenv。 - 示例:
envDB_HOST=localhostDB_PORT=3306pythonfrom dotenv import load_dotenvimport osload_dotenv()db_host = os.getenv("DB_HOST") - 适用场景:管理敏感信息(需配合
.gitignore)。
选择建议:
- 简单配置:INI、JSON、环境变量。
- 复杂结构:YAML、TOML。
- 跨语言/兼容性:JSON、XML。
- 动态环境:环境变量、.env 文件。
根据项目需求(如可读性、复杂度、维护性)选择合适的格式即可。
下一篇将演示如何通过python代码读取以上配置文件
