当前位置 : 主页 > 编程语言 > python >

python读写ini格式的配置文件

来源:互联网 收集:自由互联 发布时间:2022-06-24
​ 生信工程师的日常工作中,除了进行脚本编程,处理文件读写,画图,统计等常规操作,还会涉及到编写一整套完整的pipeline,此时就需要一个标准的配置文件,来保存需要的参数设

生信工程师的日常工作中,除了进行脚本编程,处理文件读写,画图,统计等常规操作,还会涉及到编写一整套完整的pipeline,此时就需要一个标准的配置文件,来保存需要的参数设置。业界常用的标准化的配置文件格式有以下几种

  • ini
  • json
  • xml
  • yaml
  • ini作为windows上配置文件的标准格式,更加易于没有编程基础的人来编写和修改,后三种格式则对于程序而言更加友好,处理更加方便。一个ini文件的示例如下

    [DEFAULT]
    threads = 5
    [SAMPLE]
    suffix = fastq.gz


    [MAPPING]
    method = bowtie2
    threads = 10
    filter = false
    mapq = 20
    map_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读写ini格式的配置文件_公众号



    上一篇:python读写压缩文件
    下一篇:没有了
    网友评论