在 Python 中,config.ini 文件通常用于存储配置设置和参数,使得应用程序的配置更为灵活和易于管理。以下是 config.ini 文件的主要作用和优点:

一、 存储配置信息

config.ini 文件可以用来存储各种配置信息,例如:

  • 数据库连接信息(如主机名、用户名、密码等)
  • API 密钥和访问令牌
  • 应用程序的运行参数(如调试模式、日志级别等)
  • 用户偏好设置

二、 易于修改

使用配置文件可以使配置项与代码分离,方便在不修改代码的情况下调整应用程序的行为。这对于需要频繁变更配置的应用程序特别有用。

三、支持多环境配置

不同的环境(如开发、测试、生产)可能需要不同的配置。可以通过不同的 config.ini 文件来为每个环境提供相应的配置,方便切换。

四、使用标准格式

config.ini 文件通常遵循 INI 文件格式,具有简单、直观的结构。标准格式使得配置文件易于阅读和编辑。

五、使用库支持

Python 的 configparser 模块提供了读取和写入 INI 格式配置文件的功能,使得处理配置变得简单。您可以轻松地读取配置值并将其应用到程序中。

如何使用 configparser

演示如何使用 configparser 读取和写入 config.ini 文件。

1. 创建 config.ini 文件

[database]
host = localhost
user = admin
password = secret
[settings]
debug = true
log_level = info

2. 读取配置文件


import configparser

# 创建配置解析器
config = config了parser.ConfigParser()

# 读取配置文件
config.read('config.ini')

# 获取配置值
db_host = config['database']['host']
db_user = config['database']['user']
db_password = config['database']['password']
debug_mode = config.getboolean('settings', 'debug')
log_level = config['settings']['log_level']

print(f"DB Host: {db_host}")
print(f"DB User: {db_user}")
print(f"Debug Mode: {debug_mode}")
print(f"Log Level: {log_level}")




3. 写入配置文件

# 修改配置
config['settings']['debug'] = 'false'

# 写回配置文件
with open('config.ini', 'w') as configfile:
    config.write(configfile)

OK 介绍到这里就基本config.ini的使用就了解得差不了,接下来说说我在mac下打包成app和dmg遇到的问题,在往config.ini写的时候是会有异常的,提示说明为只读文件,不能写入,so我这里的解决办法是创建外部的config.ini,在打开应用的时候新建config.ini文件,再进行读写操作,所以在上面的情况建议配置一些常用的静态数据,不适合动态写入,下面介绍一个可以动态读写的config.ini使用方法,let’s go。。。。。。

六、config.ini的其他使用方法

下面直接看代码:


import os
import sys

from PyQt5.QtCore import QStandardPaths, QSettings

# 检查是否有命令行参数指定了配置文件路径
if len(sys.argv) > 1:
    config_file_path = sys.argv[1]
else:
    # 默认情况下使用用户目录下的配置文件    
    app_data_path = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation)
    if not os.path.exists(app_data_path+"/LabelSystem"):
        os.makedirs(app_data_path+"/LabelSystem")
    config_file_path = os.path.join(app_data_path+"/LabelSystem", "config.ini")
# 使用指定的配置文件路径
settings = QSettings(config_file_path, QSettings.IniFormat)

# 使用了 QSettings 配置config.ini的方式
# 获取配置
def get_setting(option):
    return settings.value(option)
#设置配置
def set_setting(option, value):
    """设置配置并保存到文件"""    
    settings.setValue(option, value)

上面使用QSettings 来进行config.ini的读写。在启动应用的时候 初始化了一个config.ini 文件。这样我们在打包成应用后,就可以正常读写 config.ini 的信息。