日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

下面是一個封裝了YAML文件的增刪改查操作的示例類

import os
import yaml

class YamlFile:
    def __init__(self, yaml_file):
        if os.path.exists(yaml_file):  #檢查文件是否存在
            self.yaml_file = yaml_file
        else:
            rAIse FileNotFoundError("yaml文件不存在")
        self._data = None
        self._data_all = None

    def read_yaml(self):
        """
        讀取單個YAML文件并返回文件中的數據。
        """
        if not self._data:
            with open(self.yaml_file, 'rb') as file:
                self._data = yaml.safe_load(file)
            return self._data

    def read_yaml_all(self):
        """
        讀取所有的YAML文件并返回文件中的數據。
        """
        if not self._data_all:
            with open(self.yaml_file, 'rb') as file:
                self._data_all = yaml.safe_load_all(file)
            return self._data_all

    def write_yaml(self, data):
        """
        將數據寫入到YAML文件中。
        """
        with open(self.yaml_file, 'w') as file:
            yaml.dump(data, file)

    def get_yaml_value(self, key):
        """
        根據鍵獲取YAML文件中對應的值。
        """
        data = self.read_yaml()
        return data.get(key, None)

    def set_yaml_value(self, key, value):
        """
        設置YAML文件中指定鍵的值。
        """
        data = self.read_yaml()
        data[key] = value
        self.write_yaml(data)
        return True

    def remove_yaml_key(self, key):
        """
        刪除YAML文件中指定鍵的值。
        """
        data = self.read_yaml()
        if key in data:
            del data[key]
            self.write_yaml(data)
            return True
        else:
            return False

if __name__ == '__main__':
    pass

每個方法的含義如下


read_yaml: 讀取YAML文件并返回文件中的數據。它使用open函數打開文件,然后使用yaml.safe_load函數將文件中的YAML數據加載為Python/ target=_blank class=infotextkey>Python數據結構,并將其返回。

read_yaml_all:,它用于安全地加載一個或多個 YAML 文檔。
safe_load_all 函數會逐個加載并解析每個 YAML 文檔,并返回一個生成器對象。通過迭代生成器,你可以逐個訪問每個 YAML 文檔的 Python 對象表示。

使用 safe_load_all 函數的示例如下:

import yaml

with open('data.yml', 'r') as file:
    documents = yaml.safe_load_all(file)
    for doc in documents:
        print(doc)

write_yaml: 將數據寫入到YAML文件中。它使用open函數打開文件,然后使用yaml.dump函數將Python數據結構轉換為YAML格式,并將其寫入文件中。

get_yaml_value: 根據鍵獲取YAML文件中對應的值。它首先調用read方法讀取文件中的數據,然后使用get方法獲取指定鍵的值。如果鍵不存在,則返回None。

set_yaml_value: 設置YAML文件中指定鍵的值。它首先調用read方法讀取文件中的數據,然后更新數據字典中指定鍵的值,并調用write方法將更新后的數據寫回到文件中。

remove_yaml_key: 刪除YAML文件中指定鍵的值。它首先調用read方法讀取文件中的數據,然后檢查指定鍵是否存在于數據字典中。如果存在,則使用del語句從字典中刪除該鍵值對,并調用write方法將更新后的數據寫回到文件中。如果鍵不存在,則返回False。

分享到:
標簽:Python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定