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 ...
随机推荐
- Solo 开发者周刊 (第9期):Dawwin首位人工智能编程师或将改变未来?
这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 Daw ...
- 日文乱码转换 | Windows下使用方法详解
背景:有一个乱码的日文txt,需要让它正常显示. 一.下载转换软件 这应该是软件作者的主页 http://acg17.com/9713.html 也可以在这里获取软件: https://wwa.lan ...
- 3.2 逻辑设计和硬件控制语言HCL
在硬件设计中,用电子电路来计算对位进行运算的函数,以及在各种存储器单元中存储位.大多数现代电路技术都是用信号线上的高电压或低电压来表示不同的位值.在当前的技术中,逻辑1是用1.0伏特左右的高电压表示的 ...
- 有数大数据基础平台之智能运维平台EasyEagle介绍:集群队列篇
他来啦,他来啦!大数据基础平台发布会中提到的智能运维平台,他来啦! 作为数据平台的用户们,下述问题一直困扰着我们: 集群资源水位如何,利用率如何,是否需要扩容? 队列为什么最近大量任务出现pendin ...
- leetcode简单(数组,字符串,链表):[66, 67, 70, 83, 121, 141, 160, 169, ,206, 338]
目录 66. 加一 67. 二进制求和 70. 爬楼梯 83. 删除排序链表中的重复元素 121. 买卖股票的最佳时机 141. 环形链表 160. 相交链表 169. 多数元素 206. 反转链表 ...
- 【游记】CSP 2023
day 0 和 printfmingren 整理了一下不会的知识点,发现有点多,遂开摆 音游真的太好玩了 对着<算法竞赛进阶指南>复习了下对拍器的写法,把部分算法的模板又打了一遍 感觉前途 ...
- 01-初识springboot
目录 01,什么是springboot 02,如何使用springboot 01,什么是springboot springboot是一个基于spring框架开发出来的一个新的框架,目的是为了简化spr ...
- ABC361
A link 先输出前\(k\)个,再输出\(x\),最后输出后面的. 点击查看代码 #include<bits/stdc++.h> using namespace std; int n, ...
- 深入探讨Spring Boot中的参数传递
深入探讨Spring Boot中的参数传递 在Spring Boot开发中,参数传递是一个非常常见且重要的操作.无论是处理HTTP请求,还是在方法之间传递数据,理解和掌握参数传递的各种方式都能让我们的 ...
- java进行文件搜索的一个小案例
分享一个小demo,可以查询某个文件目录下的某个文件并启动,来自黑马的IO教程 import java.io.File; import java.io.IOException; public clas ...