当前位置:首页 » 编程语言 » pythonini文件读写

pythonini文件读写

发布时间: 2023-01-20 22:57:14

python3.9 读写ini文件

官方文档

源码看出,这个ini文档,可以像字典一样,使用“:”,但一般我们都使用“=”,并且值都不需要加引号
备注可以使用'#'或';',单独一行,可缩进。
class ConfigParser(RawConfigParser):
class RawConfigParser(MutableMapping):

详细看官网,不搬砖,列出几个我自己常用的

⑵ INI的文件读写

读取 (_In_LPCTSTRlpAppName,_In_LPCTSTRlpKeyName,_In_LPCTSTRlpDefault,_Out_LPTSTRlpReturnedString,_In_DWORDnSize,_In_LPCTSTRlpFileName);参数说明:
lpAppName (输入参数)节名
lpKeyName (输入参数)键名
lpDefault (输入参数)默认值。INI读取失败时,得到这个值
lpReturnedString (输出参数)读取到的键值
nSize (输入参数)lpReturnedString的缓冲区大小
lpFileName (输入参数)INI文件的文件路径
返回值:
读取到的字符数,不包括末尾的''字符或L''字符。
写入 (_In_LPCTSTRlpAppName,_In_LPCTSTRlpKeyName,_In_LPCTSTRlpString,_In_LPCTSTRlpFileName);参数说明:
lpAppName (输入参数)节名
lpKeyName (输入参数)键名
lpString (输入参数)需要写入的键值
lpFileName (输入参数)INI文件的文件路径
返回值:
写入成功返回非零值,写入失败返回零值,可以用GetLastError函数得到错误原因。 #!/usr/bin/envpython#-*-coding:UTF-8-*-importConfigParseriniparser=ConfigParser.ConfigParser()#初始化一个INI读写类的对象iniparser.read('filename.ini')#读取INI文件key_value=iniparser.get('section_name_1','key_name')#解析INI文件printkey_value#生成INI文件iniparser.add_section('section_name_2')iniparser.set('section_name_2','key_name','key_value')withopen('filename.ini','w')asinifile: iniparser.write(inifile)#写入INI文件

⑶ 如何使用Python3读写INI配置文件

ini文件简介
ini是我们常见到的配置文件格式之一。
ini是微软Windows操作系统中的文件扩展名(也常用在其他系统)。
INI是英文“初始化(Initial)”的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。
网络
通过它,可以将经常需要改变的参数保存起来(而且还可读),使程序更加的灵活。
我先给出一个ini文件的示例。
[School]
ip = 10.15.40.123
mask = 255.255.255.0
gateway = 10.15.40.1
dns = 211.82.96.1

[Match]
ip = 172.17.29.120
mask = 255.255.255.0
gateway = 172.17.29.1
dns = 0.0.0.0

这个配置文件中保存的是不同场合下的IP设置参数。
下面将以生成和读取这个配置文件为例,进行讲解。
Python(v3)读取方法
首先,Python读取ini配置需要用到ConfigParser包,所以要先加载它。
import configparser

之后我们需要载入配置文件。
config=configparser.ConfigParser()

#IpConfig.ini可以是一个不存在的文件,意味着准备新建配置文件。
config.read("IpConfig.ini")

接下来,我们可以使用configparser.add_section()向配置文件中添加一个Section。
#添加节School
config.add_section("School")

注意:如果文件中已经存在相应的项目,则不能再增加同名的节。
然后可以使用configparser.set()在节School中增加新的参数。
#添加新的IP地址参数
config.set("School","IP","192.168.1.120")
config.set("School","Mask","255.255.255.0")
config.set("School","Gateway","192.168.1.1")
config.set("School","DNS","211.82.96.1")

你可以以同样的方式增加其它几项。
#由于ini文件中可能有同名项,所以做了异常处理
try:
config.add_section("Match")
config.set("Match","IP","172.17.29.120")
config.set("Match","Mask","255.255.255.0")
config.set("Match","Gateway","172.17.29.1")
config.set("Match","DNS","0.0.0.0")
except configparser.DuplicateSectionError:
print("Section 'Match' already exists")

增加完所有需要的项目后,要记得使用configparser.write()进行写入操作。
config.write(open("IpConfig.ini", "w"))

以上就是写入配置文件的过程。
接下来我们使用configparser.get()读取刚才写入配置文件中的参数。读取之前要记得读取ini文件。
ip=config.get("School","IP")
mask=config.get("School","mask")
gateway=config.get("School","Gateway")
dns=config.get("School","DNS")

print((ip,mask+"\n"+gateway,dns))

完整示例
下面是一个完整的示例程序,他将生成一个IpConfig.ini的配置文件,再读取文件中的数据,输出到屏幕上。
# -*- coding: utf-8 -*-

import configparser

#读取配置文件
config=configparser.ConfigParser()
config.read("IpConfig.ini")

#写入宿舍配置文件
try:
config.add_section("School")
config.set("School","IP","10.15.40.123")
config.set("School","Mask","255.255.255.0")
config.set("School","Gateway","10.15.40.1")
config.set("School","DNS","211.82.96.1")
except configparser.DuplicateSectionError:
print("Section 'School' already exists")

#写入比赛配置文件
try:
config.add_section("Match")
config.set("Match","IP","172.17.29.120")
config.set("Match","Mask","255.255.255.0")
config.set("Match","Gateway","172.17.29.1")
config.set("Match","DNS","0.0.0.0")
except configparser.DuplicateSectionError:
print("Section 'Match' already exists")

#写入配置文件
config.write(open("IpConfig.ini", "w"))

ip=config.get("School","IP")
mask=config.get("School","mask")
gateway=config.get("School","Gateway")
dns=config.get("School","DNS")

print((ip,mask+"\n"+gateway,dns))

总结
Python读取ini文件还是十分简单的,这里我给出的只是一些简单的使用方法,如果想用更高级的功能,比如和注释有关的功能。可以参考Pyhton官方文档

⑷ 用python修改文件中指定的行数

python默认库不能随机读写文件。只能一次读入和写入。以下是示例代码。

filename='setup.ini'
lines=[]
withopen(filename,'r',encoding='utf8')asf:
lines=f.readlines()
lines[167]='UPI1=Chinese'
lines[231]='UPI1=Chinese'
withopen(filename,'w',encoding='utf8')asf:
f.write(' '.join(lines))
f.flush()

修改需谨慎,修改前请记得备份,不明白可追问。

⑸ 如何使用Python3读取配置文件

ini是微软Windows操作系统中的文件扩展名(也常用在其他系统)。
INI是英文“初始化(Initial)”的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。通过它,可以将经常需要改变的参数保存起来(而且还可读),使程序更加的灵活。
先给出一个ini文件的示例。
1234567891011[School]ip = 10.15.40.123mask = 255.255.255.0gateway = 10.15.40.1dns = 211.82.96.1 [Match]ip = 172.17.29.120mask = 255.255.255.0gateway = 172.17.29.1dns = 0.0.0.0
这个配置文件中保存的是不同场合下的IP设置参数。
首先,Python读取ini配置需要用到ConfigParser包,所以要先加载它。
1import configparser
之后我们需要载入配置文件。
1config=configparser.ConfigParser()
#IpConfig.ini可以是一个不存在的文件,意味着准备新建配置文件。
1config.read("IpConfig.ini")
接下来,我们可以使用configparser.add_section()向配置文件中添加一个Section。
#添加节School
1config.add_section("School")
注意:如果文件中已经存在相应的项目,则不能再增加同名的节。
然后可以使用configparser.set()在节School中增加新的参数。
#添加新的IP地址参数
1234config.set("School","IP","192.168.1.120")config.set("School","Mask","255.255.255.0")config.set("School","Gateway","192.168.1.1")config.set("School","DNS","211.82.96.1")
你可以以同样的方式增加其它几项。
#由于ini文件中可能有同名项,所以做了异常处理
12345678try: config.add_section("Match") config.set("Match","IP","172.17.29.120") config.set("Match","Mask","255.255.255.0") config.set("Match","Gateway","172.17.29.1") config.set("Match","DNS","0.0.0.0")except configparser.DuplicateSectionError: print("Section 'Match' already exists")
增加完所有需要的项目后,要记得使用configparser.write()进行写入操作。
1config.write(open("IpConfig.ini", "w"))
以上就是写入配置文件的过程。
接下来我们使用configparser.get()读取刚才写入配置文件中的参数。读取之前要记得读取ini文件。
12345ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+"\n"+gateway,dns)
下面是一个完整的示例程序,它将生成一个IpConfig.ini的配置文件,再读取文件中的数据,输出到屏幕上。
1# -*- coding: utf-8 -*-import configparser#读取配置文件config=configparser.ConfigParser()config.read("IpConfig.ini")#写入宿舍配置文件try: config.add_section("School") config.set("School","IP","10.15.40.123") config.set("School","Mask","255.255.255.0") config.set("School","Gateway","10.15.40.1") config.set("School","DNS","211.82.96.1")except configparser.DuplicateSectionError: print("Section 'School' already exists")#写入比赛配置文件try: config.add_section("Match") config.set("Match","IP","172.17.29.120") config.set("Match","Mask","255.255.255.0") config.set("Match","Gateway","172.17.29.1") config.set("Match","DNS","0.0.0.0")except configparser.DuplicateSectionError: print("Section 'Match' already exists")#写入配置文件config.write(open("IpConfig.ini", "w"))ip=config.get("School","IP")mask=config.get("School","mask")gateway=config.get("School","Gateway")dns=config.get("School","DNS")print((ip,mask+"\n"+gateway,dns))

⑹ 没有section的ini文件可以用ConfigParser解析吗

这篇文章主要介绍了Python中使用ConfigParser解析ini配置文件实例,本文给出了创建和读取ini文件的例子,需要的朋友可以参考下
ini文件是windows中经常使用的配置文件,主要的格式为:

复制代码代码如下:

[Section1]
option1 : value1
option2 : value2

python提供了一个简单的模块ConfigParser可以用来解析类似这种形式的文件。对于ConfigParser模块可以解析key:value和key=value这样的类型,对于#和;开头的行将会自动忽视掉。相当于注释行。常用的函数:

复制代码代码如下:

ConfigParser.RawConfigParser()

RawConfigParser Object的操作有:
.sections() : 返回所有可用的section
.addsection(sectionname) :添加section
.set(sectionname, optionname, optionvalue): 添加option
.hassection(sectionname) :判断
.options(sectionname) : 返回section下可用的option
.hasoption(sectionname, optionname) : 判断
.read(filename) : 读取文件
.wrie(filename) : 将RawConfigParser对象写到文件中
.get(sectionname, optionname) : 获取值, 默认的是返回string类型
.getfloat, .getint, .getboolean : 获取不同类型的返回值,参数和get的参数一样
.items(sectionname) :列出section下的所有key:value
.remove(sectionname) :删除section
.remove(sectionname, option_name) : 删除section下的某个option

Demo -- 生成文件

复制代码代码如下:

$ cat ini_demo.py
# -*- coding:utf-8 -*-

import ConfigParser
def gen_ini():
ftest = open('test','w')
config_write = ConfigParser.RawConfigParser()
config_write.add_section('Section_a')
config_write.add_section('Section_b')
config_write.add_section('Section_c')
config_write.set('Section_a','option_a1','apple_a1')
config_write.set('Section_a','option_a2','banana_a2')
config_write.set('Section_b','option_b1','apple_b1')
config_write.set('Section_b','option_b2','banana_b2')
config_write.set('Section_c','option_c1','apple_c1')
config_write.set('Section_c','option_c2','banana_c2')
config_write.write(ftest)
ftest.close()
if __name__ == "__main__":
gen_ini()

最后生成的文件为:

复制代码代码如下:

$ cat test
[Section_a]
option_a1 = apple_a1
option_a2 = banana_a2

[Section_c]
option_c2 = banana_c2
option_c1 = apple_c1
[Section_b]
option_b1 = apple_b1
option_b2 = banana_b2
Demo -- 读取文件
def read_ini():
config_read = ConfigParser.RawConfigParser()
config_read.read('test')
print config_read.sections()
print config_read.items('Section_a')
print config_read.get('Section_a','option_a1')

最后的结果为:

复制代码代码如下:

['Section_a', 'Section_c', 'Section_b']
[('option_a2', 'banana_a2'), ('option_a1', 'apple_a1')]
apple_a1

⑺ [python] ConfigParser读取带中文的ini文件

ini文件按utf-8格式保存试试看

⑻ python中四种配置文件

常用的配置文件后缀是.ini、.conf、.py,当然还有使用.json、.txt的,推荐使用常用的.ini、.py,配置文件的名字一般是config便于理解和使用。

ini配置文件,这类配置文件我们使用内置configparser库来使用,它可以实现配置文件的写入、更新、删除、读取等操作非常方便,建议使用这种方式。
新建一个config.ini的配置文件内容如下,编码格式要是 utf-8 以免出错。:

其中[]中的是section节点,该节点下的等式是option即键=值
然后每一行写一个option ,每个选项就是一个option。直接写名字,后面加 " = " 再加上它的值就行,字符串的表示不要加引号,否则引号也会被解析出来。
可以在配置文件中加入注释 ,但是注释必须是单独的一行,且以 “#” 开头。只是每次运行时不会读入注释,只要运行一次,写入文件后,所有的注释都会消失。

config.json文件

使用python内置的 json 标准库进行解析ini文件。
load() 从json文件中读取json格式数据
loads() 将字符串类型数据转化为json格式数据
mp() 将json格式数据保存到文件
mps() 将json格式数据保存为字符串类型

TOML的语法广泛地由key = "value"、[节名]、#注释构成。
支持以下数据类型:字符串、整形、浮点型、布尔型、日期时间、数组和图表。
config.toml文件

使用外部库 toml 解析toml文件。

安装:pip install toml
读取文件

安装:

YAML是目前最推荐的配置文件格式。优秀的配置文件标准它几乎都有:

容易阅读和修改,支持注释。

支持丰富的数据类型。

不同格式的明确表达。

yaml使用时需要注意:

yaml强制缩进。虽然不规定具体缩进几个空格,但是同一级的内容要保持相同的缩进。

冒号后面一定要加空格, 否则无法解析。

python解析 yaml 可以使用pyyaml库,操作和标准的文件操作非常类似:

得到的data就是解析后的数据,在python当中,它是一个嵌套的字典:

想获取某一项配置,再通过字典的操作获取:
config.yaml文件

读取

⑼ 如何使用python程序向ini配置文件中写入中文

和普通的读写文件一样的,首先得要有权限,然后重要的是文件编码格式要选对且要统一,不然就乱码了

⑽ 如何使用python程序向ini配置文件中写入中文

和普通的读写文件一样的,首先得要有权限,然后重要的是文件编码格式要选对且要统一,不然就乱码了

热点内容
压缩长抱枕 发布:2025-07-18 16:13:38 浏览:503
如何使用wifi热点配置网络 发布:2025-07-18 16:06:25 浏览:969
android软键盘数字 发布:2025-07-18 16:03:18 浏览:610
三菱plc编程软件官网 发布:2025-07-18 15:59:59 浏览:437
gse源码 发布:2025-07-18 15:58:15 浏览:627
编译链c语言执行速度 发布:2025-07-18 15:52:51 浏览:555
在线编程课程 发布:2025-07-18 15:46:56 浏览:173
生兔子算法循环 发布:2025-07-18 15:44:32 浏览:47
背包规划算法 发布:2025-07-18 15:44:27 浏览:110
微信安卓手机哪里设置铃声 发布:2025-07-18 15:36:54 浏览:780