我们在写python代码的时候,如果我们把一些账号密码、网址、数据库连接方式暴露在主代码里,很容易给人一眼看代码就暴露出来。

所有我们可以做一个小小的封装,可以把一些重要的信息封装起来,运行的时候需要从外部去调用它。

这个时候,可以小小地使用一下 “ yaml ” 文件

1. YAML文件介绍

那么,什么是 “yaml” 文件?

YAML,英文全称:YAML Ain’t Markup Language
是一种用于配置文件和数据传输的格式,它支持数据层次结构的表示,并且可以包含键值对、列表、字典等多种数据结构。

.yaml 文件是一种数据序列化格式,它被设计为易于人类阅读和编写,同时也易于机器解析和生成。

大白话就是,它可以用于存储【简单】的数据,尽管它不是数据库格式,但在某些情况下,它可以用来存储配置数据或小规模的数据集。就是书写简洁,即调即用~

YAML 文件通常用于以下场景:

  1. 配置文件:许多应用程序和开发工具使用 YAML 来存储配置信息,因为它的结构清晰,易于理解和编辑。

  2. 数据交换:YAML 可以用于不同程序或服务之间交换数据,因为它的格式是语言无关的,并且可以很容易地被转换成多种编程语言的数据结构。

  3. 版本控制系统:在版本控制系统(如Git)中,YAML 常用于编写.gitignore文件,用来指定哪些文件或目录应该被忽略,不加入版本控制。

  4. 自动化脚本:在自动化和配置管理工具(如Ansible、Puppet、Chef等)中,YAML 被用来定义配置脚本和自动化任务。

  5. API文档:Swagger 和 OpenAPI 等 API 文档工具使用 YAML 来定义 API 的结构和行为。

YAML 文件的语法包括:

  • 使用缩进来表示层级关系。
  • 使用冒号后跟一个空格来分隔键和值。
  • 使用破折号(-)来表示列表的开始。
  • 使用花括号({})来表示空字典或集合。
  • 使用方括号([])来表示列表。

一个简单的 YAML 文件示例:

# 这是一个注释
person:
  name: John Doe
  age: 30
  children:
    - name: Jane Doe
      age: 10
    - name: Doe Junior
      age: 7

在这个例子中,person 是一个字典,它包含 nameage 键值对,以及一个 children 键,其值是一个包含两个字典的列表。

上面只是一个例子,我们也可以看出这个写法很直接,一目了然的感觉。

我们可以用它来封装一些,我们认为重要的信息。例如 网址、用户名、密码、金额、时间 等等,或者一些不想给人直接看到的数字之类的。

2. 写法:

我们可以在这个yaml里面,写好配置的内容,作为setting的配置文件

在这里插入图片描述上面是我写的yaml的配置的内容,主要放置了一些用户名、密码、网址和运行次数等等。

而读取这个文件,则需要写一个读取文件:

import os
import yaml

class Setting:
    """
    这个类用于配置一些私密内容,例如传入的网址,密码等,用于保证文件的隐秘性

    """

    @staticmethod
    def ReadSetting(SettingPath):
        """
        读取配置文件
        """
        with open(os.path.expanduser(SettingPath), "r", encoding='utf-8') as config:
            cfg = yaml.safe_load(config)
        
        return cfg

在外部调用的时候,就可以这样写:

SettingPath = './setting.yaml'
Config = .ReadSetting(SettingPath)
Login= Config['login']
print(Login)

这样约等于把我们重要的内容,放在文件夹的主页后面,这样人家在翻看文件夹的内容的时候,得要找一找才能找到这些信息了~

注意:使用Yaml文件只是类似找了一个文件夹装一些重要的信息点,但是并不能起到保密的作用,一些特别重要甚至敏感的信息,建议可以存放数据库,或者给文件加密等等哦!

在这里插入图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐