社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python读写ini格式的配置文件

生信修炼手册 • 5 年前 • 759 次点击  
欢迎关注”生信修炼手册”!
生信工程师的日常工作中,除了进行脚本编程,处理文件读写,画图,统计等常规操作,还会涉及到编写一整套完整的pipeline,此时就需要一个标准的配置文件,来保存需要的参数设置。业界常用的标准化的配置文件格式有以下几种
  1. ini

  2. json

  3. xml

  4. yaml

ini作为windows上配置文件的标准格式,更加易于没有编程基础的人来编写和修改,后三种格式则对于程序而言更加友好,处理更加方便。一个ini文件的示例如下
[DEFAULT]threads = 5[SAMPLE]suffix = fastq.gz
[MAPPING]method = bowtie2threads = 10filter = falsemapq = 20map_ratio = 0.8

每一个中括号和其相关配置称为section, 中括号内的名字则为section的标识符,区分大小写。上述示例中,3大块内容对应3个section。在section下面,以key = value的形式定义了很多的参数,key是不区分大小写的,而且这一行多余的空格也会被忽略掉。

在python3中,通过内置模块configparser来读取ini文件,用法如下

>>> import configparser>>> config = configparser.ConfigParser()>>> config.read('config.ini')['config.ini']

读取成功后,所有的内容存储在config这个对象中,可以用类似字典的操作来访问数据

# sections方法返回所有section的名字>>> config.sections()['SAMPLE', 'TRIM', 'MAPPING']>>> config['SAMPLE']<Section: SAMPLE># 用字典的操作来访问数据>>> config['SAMPLE']['SUFFIX']'fastq.gz'>>> config['SAMPLE']['threads']'5'>>> config['MAPPING']['threads']'10'

DEFAULT这个section有其特殊作用,定义了默认参数以及对应的值,所以上述代码中,在MAPPING这个section中也可以访问到threads的值。

读取的内容无论是什么类型,都用字符串来存储,所以对于数字,逻辑值需要我们自己来转换,写法如下

# 默认字符串>>> config['MAPPING']['threads']'10'#  自己用int函数来转换>>> int(config['MAPPING']['threads'])10# 用模块提供的getint方法来转换>>> config['MAPPING'].getint('threads')10
当然,也可以通过程序来生成ini文件,用法如下
>>> import configparser>>> config = configparser.ConfigParser()>>> config['DEFAULT'] = {'threads':5}>>> config['SAMPLE'] = {'suffix': 'fastq.gz'}>>> config['MAPPING'] = {}>>> config['MAPPING']['method'] = 'bowtie2'>>> config['MAPPING']['threads'] = '10'>>> config['MAPPING']['filter'] = 'false'>>> config['MAPPING']['mapq'] = '20'>>> config['MAPPING']['map_ratio'] = '0.8'>>>>>> with open('config.ini', 'w') as f:...     config.write(f)...>>>
ini定义了配置文件的标准格式,通过configparser模块可以快速便捷的处理ini文件。

·end·

—如果喜欢,快分享给你的朋友们吧—



原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩



  写在最后


转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。


扫描下方二维码,关注我们,解锁更多精彩内容!


一个只分享干货的

生信公众号




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62923
 
759 次点击