在代码中经常会通过 INI 文件来配置一些常修改的配置. 下面通过一个实例来看下如何写入, 读取 INI 配置文件.
需要的配置文件是:
- [path]
- back_dir = /Users/abc/PycharmProjects/Pythoncoding/projects/
- target_dir = /Users/abc/PycharmProjects/Pythoncoding/
- [file]
- back_file = apitest
- import os
- import time
- import configparser
- # back_path = "/Users/abc/PycharmProjects/Pythoncoding/projects/"
- # back_file ="hello.txt"
- # 可以写为读取配置文件
- # 第一步: 创建 conf 对象
- conf = configparser.ConfigParser()
- # 第二步: 添加 section,options 的值
- conf.add_section("path")
- conf.set("path","back_dir","/Users/abc/PycharmProjects/Pythoncoding/projects/") # option
- conf.set("path","target_dir","/Users/abc/PycharmProjects/Pythoncoding/") # option
- conf.add_section("file")
- conf.set("file","back_file","apitest")
- # 第三步: 写入文件
- with open("path.ini",'w')as conffile:
- conf.write(conffile)
- # 第四步: 读取配置文件中的 section,options 的值
- back_dir =conf.get('path','back_dir')
- back_file =conf.get("file","back_file")
- target_dir =conf.get("path","target_dir")
- # 执行 zip 压缩命令, 将 apitest 目录下所有文件打包压缩
- source =[back_dir,back_file]
- target_file=target_dir+time.strftime("%Y%m%d%H%M%S")+'.zip'
- zip_commond ="zip -qr \"%s\"\"%s\""%(target_file,''.join(source))
- print(zip_commond)
- if os.system(zip_commond)==0:
- print('Successful backup to',target_file)
- else:
- print('Backup Failed')
- print(conf.sections())
- #['path', 'file']
- print(conf.options('path'))
- #['back_dir', 'target_dir']
- print(conf.items('path'))
- #[('back_dir', '/Users/abc/PycharmProjects/Pythoncoding/projects/'), ('target_dir', '/Users/abc/PycharmProjects/Pythoncoding/')]
笔记:
模块常用函数:
1) 读取配置文件
read(filename) 直接读取 INI 文件内容
sections() 得到所有的 section, 并以列表的形式返回
options(section) 得到该 section 的所有 option
items(section) 得到该 section 的所有键值对
get(section,option) 得到 section 中 option 的值, 返回为 string 类型
getint(section,option) 得到 section 中 option 的值, 返回为 int 类型, 还有相应的 getboolean() 和 getfloat() 函数.
2) 写入配置文件
add_section(section) 添加一个新的 section
set( section, option, value) 对 section 中的 option 进行设置, 需要调用 write 将内容写入配置文件.
来源: http://www.bubuko.com/infodetail-2883586.html