python configparser 创建ini文件,动态读取与修改配置文件,以及保存与读取字符串与QColor类型的配置
# 动态配置所需
from import ConfigParser
# 获取系统语系所需
import locale
# QColor 类型的传参所需
from PyQt6.QtGui import QColor
bg_background_color = QColor(50, 50, 50, 100)
text_color = QColor(255, 255, 255, 200)
language_type = ""
# 获取系统的默认语系
def get_system_language():
# 获取默认的区域设置
locale_info = locale.getdefaultlocale()
# 提取语言部分
res = "zh_CN"
default_language = locale_info[0]
if default_language.startswith("en_"):
res = "en_US"
else:
res = default_language
return res # 记录内容:
# 1. 字体颜色
# 2. 背景颜色
# 3. 国际化的语系
def create_config(filename):
global language_type
config = ConfigParser()
config.add_section('Settings')
backgroundColor = QColor(24, 24, 24, 200)
backgroundColorStr = "{}:{}:{}:{}".format(backgroundColor.red(), backgroundColor.green(), backgroundColor.blue(), backgroundColor.alpha())
fontColor = QColor(255, 255, 255, 250)
fontColorStr = "{}:{}:{}:{}".format(fontColor.red(), fontColor.green(), fontColor.blue(), fontColor.alpha())
language_type = get_system_language()
config.set('Settings', 'text_color', fontColorStr)
config.set('Settings', 'bg_background_color', backgroundColorStr)
config.set('Settings', 'language_type', language_type)
with open(filename, 'w') as configfile:
config.write(configfile) def read_config():
global bg_background_color, text_color, language_type
config = ConfigParser()
config.read('config.ini')
if config.has_section('Settings'):
language_type = config.get('Settings', 'language_type')
backgroundColor = config.get('Settings', 'bg_background_color')
textColor = config.get('Settings', 'text_color')
bgRed, bgGreen, bgblue, bgAlpha = backgroundColor.split(":")
bg_background_color = QColor(int(bgRed), int(bgGreen), int(bgblue), int(bgAlpha))
textRed, textGreen, textblue, textAlpha = textColor.split(":")
text_color = QColor(int(textRed), int(textGreen), int(textblue), int(textAlpha))
else:
# 没有settings的配置,需要重新创建
create_config('config.ini') # 读取某个配置
def read_config_key(key):
config = ConfigParser()
config.read('config.ini')
if config.has_section('Settings'):
values = config.get('Settings', key)
return values
else:
return "" # 修改某个配置(qcolor类型)
def set_config_key_qcolor(key, qcolor_value):
config = ConfigParser()
config.read('config.ini')
new_qcolor_value = "{}:{}:{}:{}".format(qcolor_value.red(), qcolor_value.green(), qcolor_value.blue(), qcolor_value.alpha())
config.set('Settings', key, new_qcolor_value)
with open('config.ini', 'w') as f:
config.write(f) # 修改某个配置(str类型)
def set_config_key_str(key, new_value):
config = ConfigParser()
config.read('config.ini')
config.set('Settings', key, new_value)
with open('config.ini', 'w') as f:
config.write(f) # 程序初始化时,检查是否有ini配置文件,如果没有,则新建,如果有,则读取
def main():
# 读取配置
read_config() if __name__ == "__main__":
main()
python configparser 创建ini文件,动态读取与修改配置文件,以及保存与读取字符串与QColor类型的配置的更多相关文章
- Python 用configparser读写ini文件
一.configparser 简介Python用于读写ini文件的一个官方标准库.具体详见官网链接 二.configparser 部分方法介绍 方法 描述 read(filenames) filesn ...
- Python3 将configparser从ini文件中读取的内容转换成字典格式
因为写脚本的用到了,所以研究了下怎么将configparser从ini文件中读取的内容转换成字典格式. 整理一下,希望能对大家有帮助. 从http://stackoverflow.com/questi ...
- C# 创建INI文件,写入并可读取。----转载
基于C#winform设计. 首先创建一个类,我命名为IniFiles.并引入命名空间using System.Runtime.InteropServices; 接着,声明API函数 [DllImpo ...
- C#如何读写和创建INI文件(经典)转
C#如何读写和创建INI文件 分类: c#程序设计2011-11-27 20:42 4935人阅读 评论(2) 收藏 举报 inic#stringbuffernullfile 在做项目过程中,有时需要 ...
- IDEA中怎么创建ini文件
首先博主在这使用的是idea的2019.3.2的版本,不知道的话可以打开help菜单的about查看 第一步: 具体需要在setings安装ini插件 第二步: 在File Types中查看ini,没 ...
- C#如何读写和创建INI文件
在做项目过程中,有时需要保存一些简单的配置信息,可以使用xml,也可以使用INI文件.下面是C#中读取INI的方法,相信大部分朋友都使用过这种方式.INI文件的存储方式如下, [section] ke ...
- pycharm新建ini文件或创建ini文件失败
1.pycharm创建ini格式的文件,没有对应的 ini 文件类型-------需要更新 Ini 2.setting–>marketplace 搜索 Ini ,然后进行安装,重启pycharm ...
- python批量创建txt文件,以demo.txt内的内容为文件名
#批量创建txt文件import sys,osa=open("demo.txt")n=0aList=[]for line in a.readlines(): aList.appen ...
- php上传大文件时,服务器端php.ini文件中需要额外修改的选项
几个修改点: 1.upload_max_filesize 上传的最大文件 2.post_max_size 上传的最大文件 3.max_execution_time 修改为0表示无超时,一直等待 4.m ...
- 用ConfigurationManager读取和修改配置文件
为了方便有时我们会把一些简单的配置的信息放入web.config文件里. 放到appSettings添加key value等信息. ConfigurationManager.AppSettings ...
随机推荐
- Spark3学习【基于Java】5. Spark-Sql联表查询JOIN
大数据场景下,联表远比微小型关系型数据库中使用的频繁.网上有句话: 传统数据库单机模式做Join的场景毕竟有限,也建议尽量减少使用Join. 然而大数据领域就完全不同,Join是标配,OLAP业务根本 ...
- win10 搭建 npm 环境
前言 最近,根据CSDN和博客园等文章的帮助下,搭建了一个npm的环境,现在将搭建过程记录下来,留作参考. 搭建过程 下载nodejs,我是使用的zip包安装的,安装包官网地址https://node ...
- SpringBoot AOP完美记录用户操作日志,附源码
记录内容 接口名称 浏览器名称 操作系统 请求ip 接口入参.出参 接口耗时 .... 表结构 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- -- ...
- P1387
#include<iostream> #include<utility> using namespace std; typedef long long ll; #define ...
- LM Studio + open-webui 快速本地部署大语言模型
目录 一.前言 二.环境准备 三.安装设置 四.下载模型并运行 五.配置 open-webui 写在结尾 一.前言 自 OpenAi 发布 ChatGPT 对话性大语言模型,AI 这两年发展迎来爆发, ...
- 【ue源码】定制-蓝图部分
今天在更新UE的伤害系统的时候出现了一个问题: 多个地方频繁调用一个函数,而这个函数肯定做优化,具体就是,把对应数据放入到队列,另外一个地方慢慢消费这个队列, 那么问题出现了,我使用的UE只有Sing ...
- jmeter目录结构含义
backups :脚本备份目录.格式JMXbin目录∶存放Jmeter的启动脚本,配置文件.模块文件.jmeter.bat启动Jmeterjmeter.properties核心配置文件.docs:离线 ...
- RDD | 算子 | 持久化
分布式集合对象上的API称之为算子 算子分为两类: transformation算子:指返回值仍然是rdd,类似于stream里的中间流 这类算子与中间流相同,是懒加载的 action算子:返回值不是 ...
- 浅谈 MySQL 连表查询
浅谈 MySQL 连表查询 连表查询是一把双刃剑, 优点是适应范式, 减少数据冗余; 缺点是连表查询特别是多张表的连表会增加数据库的负担, 降低查询效率. 简介 连表查询就是 2 张表或者多张表的联合 ...
- 大厂面经: 字节跳动 iOS开发实习生-飞书
好家伙, 线上面试,总时长1h30mins左右 整体流程: 0.自我介绍(0-2mins) 1.做的比较难的事情(15min) 我讲我之前写的一个低开平台,写了一个撤销回退功能,提了个pr,用了节流, ...