Skip to content

读取yaml配置文件

有的时候,我们可以将一些配置信息存放在yaml配置文件中,然后读取配置文件即可。

  • python中可以使用PyYAML模块来读取配置文件。

  • PyYAML安装方法pip install pyyaml

PyYAML读取配置文件的示例。

如我们现在有一个配置文件nexus.yaml,其内容如下:

yaml
nexus_info:
  Repositories:
    - name: yum-proxy
      type: proxy
      format: yum
      remote_url: https://mirrors.tuna.tsinghua.edu.cn/centos/
      user_agent: Sync yum repo 

    - name: epel-proxy
      type: proxy
      format: yum
      remote_url: https://mirrors.tuna.tsinghua.edu.cn/epel/
      user_agent: Sync yum repo

我们使用PyYAML来读取该配置文件:

python
import os
import yaml

# 当前文件所在的目录
BASE_DIR = os.path.dirname(__file__)
YAML_CONFIG = f'{BASE_DIR}/nexus.yaml'

class Nexus:
    def __init__(self):
        """构造函数"""
        with open(YAML_CONFIG, encoding='utf-8') as yaml_file:
            self._nexus = yaml.safe_load(yaml_file)
        self._nexus_info = self._nexus.get('nexus_info')
        self._repositories = self._nexus_info.get('Repositories')

    def create_repositories(self):
        """创建仓库"""
        for repo in self._repositories:
            name = repo.get('name')
            repo_type = repo.get('type')
            repo_format = repo.get('format')
            remote_url = repo.get('remote_url')
            user_agent = repo.get('user_agent')
            print(f'仓库名称:{name}, 仓库类型: {repo_type}, '
                  f'仓库格式:{repo_format}, 远程仓库: {remote_url}, '
                  f'agent信息:{user_agent}')


if __name__ == '__main__':
    n = Nexus()
    n.create_repositories()

运行程序:

sh
$ python read_yaml.py
仓库名称:yum-proxy, 仓库类型: proxy, 仓库格式:yum, 远程仓库: https://mirrors.tuna.tsinghua.edu.cn/centos/, agent信息:Sync yum repo
仓库名称:epel-proxy, 仓库类型: proxy, 仓库格式:yum, 远程仓库: https://mirrors.tuna.tsinghua.edu.cn/epel/, agent信息:Sync yum repo

可以看到,正常获取并输出了我们的配置文件中的配置信息!说明我们PyYAML模块可以正常使用了!

再加上一些其他的配置信息,然后利用neuxs的api接口,就可以快速创建新的nexus仓库啦!

本首页参考 https://notes.fe-mm.com/ 配置而成