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 ...
随机推荐
- 广播变量的使用-----通过ip查询属于哪个省份
1,为什么要使用广播变量? 举一个简单的例子,我们要处理一份log文件,里面有ip地址. 20090121000132095572000|125.213.100.123|show.51.com|/sh ...
- test20230824总结
A 怎么是重构树板子,放在图上都是水题. B 考场上只打了一个暴力,赛后发现似乎是很可做的 C 是一个考察状态设计的 dp 以后要多刷 D 是一道数据结构优化 dp 考场上写出来了却因为空间问题挂了 ...
- CentOS7离线安装devtoolset-9并编译redis6.0.5
首先参照https://www.cnblogs.com/wdw984/p/13330074.html,来进行如何安装Centos和离线下载rpm包. 离线下载jemalloc,上传到CentOS的/d ...
- C# 获取指定年月的第一天和最后一天、获取本月的第一天和最后一天、获取当前日期的星期几等
•获取指定年月的第一天 public static DateTime GetCurMonthFirstDay(string year,string mon) { DateTime AssemblDat ...
- 全网最适合入门的面向对象编程教程:02 类和对象的Python实现-使用Python创建类
全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类 摘要 本文主要介绍了串口通信协议的基本概念.串口通信的基本流程.如何使用 Python 语言创建一个 ...
- linux信号机制(初识版)
转载 https://www.zhihu.com/question/24913599/answer/2584544572 信号是操作系统内核为我们提供用于在进程间通信的机制,内核可以利用信号来通知进程 ...
- redis基本数据结构-列表
redis基本数据结构-列表list 特性 每个列表键最多存储 2^32 - 1个字符串元素 元素在列表中有序 元素在列表中不唯一 向列表左侧添加元素 lpush key value lpush nu ...
- 常用IDE(开发工具)
一.开发工具 Visual Studio Microsoft Visual Studio(简称VS)是微软公司提供的IDE,可以在VS上编写C.C++.C#等多种语言的项目,所写的代码适用于微软支持的 ...
- [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
编码进化 回忆上次内容 上次 回顾了 字符编码的新陈代谢 ibm 曾经的EBCDIC 由于 字符不连续 导致 后续 出现无数问题 随着 网络的发展 数据交换的 需要 原来的小隐患 现在 产生了 巨大问 ...
- CF452C 题解
洛谷链接&CF 链接 题目简述 有 \(m \times n\) 张牌,有 \(n\) 个种类,每个种类有 \(m\) 张,现在抽一张放回,再抽一张,求这张牌与第一张抽出的牌种类相同的概率. ...