【Python】读取写入INI文件
最近,写个abaqus的python脚本,需要输入的item比较多,而且也有一些不经常修改但又可能要修改的option。如果都用abaqus的getinput()和getinputs()函数,那输入的时候,屏幕上一个长长的输入框,也不方便。刚好,ini这种文件格式又方便又简单明了。python也有自带的解析器。
学习笔记如下
# %%
# Python2中是from ConfigParser import ConfigParser
from configparser import ConfigParser
# 需要实例化一个ConfigParser对象
conf = ConfigParser()
# 需要添加上config.ini的路径,不需要open打开,直接给文件路径就读取,也可以指定encoding='utf-8'
conf.read('config.ini')
# 读取user段的name变量的值,字符串格式
print(conf['user']['name'])
# %% [markdown]
# conf对象每个section段的数据类似于一个字典,可以使用[‘变量名’]或者.get(‘变量名’)获取对应的值,获取到的是字符串格式。
#
# ini文件中的变量名是大小写不敏感的,而Section名是大小写敏感的。
#
# 常用的读取方法:
# %%
# GET ALL SECTIONS NAME ;
conf.sections()
# RESULT IS = ['user', 'mysql', 'log']
# %%
# GET some section's var 'value ;
# return is string
print(conf['mysql']['port'] )
# 同上,字符串格式
print(conf['mysql'].get('host') )
# : 同上,字符串格式
print(conf.get('mysql', 'db'))
# 返回数据类型为int
conf['mysql'].getint('port')
# 返回数据类型为float
conf['mysql'].getfloat('port')
# 返回数据类型为bool,将ini文件中的0/1,yes/no,
# on/‘off, true/false转换为python的True/False
conf['user'].getboolean('is_admin')
# %%
conf.has_section('log') # 检查是否有名为log的section,返回bool 。
conf.options('log') # 输出log section中所有的变量名,返回一个list。
conf.has_option('mysql', 'host') # 检查[mysql]下是否有host
# %%
# 判断是否有这个section
if conf.has_section('log') :
# 如果有,就返回所有的var
print(conf.options('log'))
# %% [markdown]
# ### 公共变量
# 假如每个Section变量组都有一批相同的重复变量,就可以在ini文件开头设定[DEFAULT]变量组。
#
# 公用变量会自动添加到每一个段中。`conf['otherSectionName']['PublicVarName'] `同样能获取到变量的值。
#
# conf对象常用的修改如下:
# %%
conf.add_section('ADD') # 添加section:[ADD]
# 在指定section中添加变量和变量值,section必须存在或已添加,
# value必须为字符串形式,可以设置DEFAULT字段的值
conf.set('ADD', 'add 1', '100')
conf.set('ADD','add 2','200')
global f
f=open('modify.ini','w',encoding='utf-8')
# 移除指定section下指定变量
conf.remove_option('ADD', 'add 2')
conf.remove_section('ADD')# 移除section
conf.write(f)
print(conf)
f.close()
【Python】读取写入INI文件的更多相关文章
- C语言实现 读取写入ini文件实现(转)
#include <stdio.h> #include <string.h> /* * 函数名: GetIniKeyString * 入口参数: title * 配置文件中一组 ...
- python 读取 写入txt文件
filename = 'pi_digits.txt' with open(filename) as f:#默认以只读方式打开文件 lines = f.readlines()#读取所有行,结果为列表,每 ...
- Python 读取写入配置文件 —— ConfigParser
Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...
- MFC写入.ini文件的策略
在使用WritePrivateProfileString的时候, 如果前两个参数已经在INI文件中存在,那该函数的作用就是修改键值,即楼主说的覆盖 如果第一个参数存在,第二个参数不存在,那作用是在IN ...
- 【WPS】表格使用VBA宏编程写入ini文件实现软件多语言
前言:公司软件最近在做多语言版本,而又来一个西班牙文版本的,之前已经做过中文版本,英文版本和法文版本,之前是同事做的,现在安排我做,之前的做法,使用wps表格,翻译好,然后一个一个复制粘贴到ini文件 ...
- python 读取配置文件ini ---ConfigParser
Python读取ini文件需要用到 ConfigParser 模块 关于ConfigParser模块的介绍详情请参照官网解释:https://docs.python.org/2.7/library/c ...
- boost::property_tree读取解析ini文件--推荐
boost::property_tree读取解析ini文件 #include "stdafx.h" #include <iostream> #include <b ...
- python读取Excel表格文件
python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1.安装Excel读取数据的库-----xlrd 直接pip install xlrd安 ...
- 用C#读取,写入ini文件
[DllImport("kernel32.dll")] private static extern bool WritePrivateProfileString(string se ...
- C语言实现<读取>和<写入> *.ini文件(转)
原地址:https://blog.csdn.net/niha1993825jian/article/details/41086403 #include <stdio.h> #include ...
随机推荐
- 【转载】Apache Doris、DorisDB傻傻分不清。。。
https://www.sohu.com/a/488816742_827544 相信这两天很多社区小伙伴都看到 StarRocks 所谓"开源"的动态了,开源用户群里有很多小伙 ...
- Qt编写地图综合应用1-闪烁点图
一.前言 Qt作为一个超大型的一站式GUI超市开发集成环境,不仅集成了大量的可视化UI组件,还提供了网络库.数据库操作.文件操作等类库,封装的还是相当精彩一步到位,根据个人身边的一些程序员朋友了解,自 ...
- _findnext()调试中断,发生访问错误,错误定位到ntdll.dll
问题: 采用_findfirst和_findnext获取指定的文件夹下的文件时,_findnext()函数在调试时发生中断,发生访问错误,错误定位到ntdll.dll.错误提示如下所示: _findn ...
- 比较IDEA与Eclipse
在IDEA的项目中,聚合工程或普通的根目录是工程(Project).它的每一个子模块(Module),都可以使用独立的JDK和Maven.下面的子工程称为模块(Module),子模块(Module)之 ...
- C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)方法抛出“基础连接已经关闭: 发送时发生错误”的解决办法
现象描述: C# .Net FrameWork3.5中异步HTTP请求时,由于安全协议的问题System.Net.HttpWebRequest.EndGetResponse(IAsyncResult ...
- 了解 ASP.NET Core 中的中间件
在 .NET Core 中,中间件(Middleware) 是处理 HTTP 请求和响应的核心组件.它们被组织成一个请求处理管道,每个中间件都可以在请求到达最终处理程序之前或之后执行操作.中间件可以用 ...
- Solution Set - “我献上明月一盏,照满河山”
目录 0.「集训队互测 2018」「洛谷 P9248」完美的集合 1.「UR #6」「UOJ #74」破解密码 2.「NOI Simu.」苯为 3.「NOI Simu.」西克 4.「NOI Simu. ...
- 记一次 contentInsetAdjustmentBehavior 引发的bug
注:本文同步发布于微信公众号:stringwu的互联网杂谈记一次 contentInsetAdjustmentBehavior 引发的bug 1 背景 项目中使用到了UILable来展示相关的文本内容 ...
- biancheng-Spring MVC-HandlerMapping
一.HandlerMapping 作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecu ...
- 基本类型、包装类与String类间的转换