Pythonの+書き込みは、プロファイルパッケージのYAMLを要求します

簡単な紹介

YAML言語の設計目標は、人間の読者を容易にすることです。それは本質的に、ユニバーサル・シリアル・データ・フォーマットです。次のようにその基本的な構文規則は以下のとおりです。

  • 大文字と小文字を区別する
  • 使用インデント階層
  • 空間のみの使用が可能にインデントをTabキーを使用することはできません。
  • インデントのスペースの数は長い左の要素が同じレベルに整列されているほど、重要ではありません。
  • 「#」は発言を表し、パーサによって無視されます

YAMLのデータ構造は3でサポートされています

  • オブジェクト:キーのセット、またマッピング(マッピング)として知られている/ハッシュ(ハッシュ)/ディクショナリ(辞書)
  • 配列:値のセットが順に配置され、また、公知の配列(シーケンス)/リスト(一覧表)
  • スカラー(スカラー):個々の値を分割することができません

 


オープン関数

open()関数は、オブジェクト関連する方法は、読み取り、書き込み、それを呼び出すことができるファイルを作成し、ファイルを開くために使用されています

関数のシンタックス:

open(name[, mode[, buffering]])

パラメータ:

  • 名前:アクセスしたいファイルの名前を含む文字列値。

  • モード:読み取り専用、書き込み、追記など:モードは、開いているファイルのモードを決定します。次のようにすべての可能な値の完全なリストを参照してください。このパラメータは必須ではありませんが、デフォルトのファイルが読み取り専用アクセスモード(R)。

  • バッファリング:バッファリングの値が0に設定されている場合は、ストレージが存在します。バッファリングの値が1を取る場合は、行がファイルにアクセスするために登録します。値は、この記憶領域のバッファサイズであることを示し、バッファリングの1以上の整数大きい場合。もし否定、システムのデフォルトの格納領域のバッファサイズ

ファイルの異なるモードの完全なリストを開きます。

モード 説明
R 読み取り専用モードでファイルを開きます。ポインタファイルは、ファイルの先頭に配置されます。これはデフォルトのモードです
RB 読み取り専用のバイナリ形式のファイルを開きます。ファイルポインタはファイルの先頭に配置されます。これはデフォルトのモードです
R + 読み込みおよび書き込み用のファイルを開きます。ファイルポインタはファイルの先頭に配置されます
RB + バイナリ形式の読み込みと書き込みのためにファイルを開きます。ファイルポインタはファイルの先頭に配置されます
ワット 書き込み専用ファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します
WB 唯一のバイナリ形式で記述するためのファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します
+ W 読み込みおよび書き込み用のファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します
WB + バイナリ形式の読み込みと書き込みのためにファイルを開きます。ファイルが既に存在する場合は、ファイルを開いている最初から編集を開始、元のコンテンツが削除されます。ファイルが存在しない場合は、新しいファイルを作成します
A 追記用のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツが既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します
から 追加用のバイナリ形式のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツが既存のコンテンツの後に書き込まれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します
+ 読み込みおよび書き込み用のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。ファイルを開いたときにはモードを追加します。ファイルが存在しない場合は、読み込みおよび書き込み用の新しいファイルを作成します
AB + 追加用のバイナリ形式のファイルを開きます。ファイルが既に存在する場合、ファイルポインタはファイルの末尾に配置されます。ファイルが存在しない場合は、読み込みおよび書き込み用の新しいファイルを作成します

環境設定:

インストールPyYAMLと:のpython -mピップPyYAMLとインストール


読んだ

import yaml

# 读取yaml文件
class Getyaml():
    def __init__(self, path, param=None):
        self.path = path                                # 文件路径
        self.param = param                              # 读取信息的key,不传默认获取所有数据

    # 获取yaml文件中的数据
    def get_data(self):
        with open(self.path, 'rb') as y:
            cont = y.read()                             # 获取yaml文件中的所有信息
        yaml.warnings({'YAMLLoadWarning': False})       # 禁用加载器warnings报警
        cf = yaml.load(cont)                            # 将bytes格式转成dict格式
        y.close()                                       # 关闭文件
        if self.param == None:
            return cf                                   # 返回所有数据
        else:
            return cf.get(self.param)                   # 获取键为param的值

if __name__ == "__main__":
    p = "Z:\\readwrite.yaml"
    print(Getyaml(path=p, param="key").get_data())

#注:重複キーYAMLファイルが読み込まれた場合は書面による最新のを読みます


書く

import yaml

# 写入yaml文件
class Writeyaml():
    def __init__(self, path, message):
        self.path = path
        self.message = message

    def echo_data(self):
        with open(self.path, "a+", encoding="utf-8") as f:    
        # 注:此模式为追加模式,若想直接重写则将open函数中的模式'a+'改为'w'
            yaml.dump(self.message, f)
        f.close()

if __name__ == "__main__":
    m = {"key1": "value1", "key2": "value2", "dict_1": {"dict_2": {"dict_3": ["test1", "test2", "test3"]}}}
    p = "Z:\\readwrite.yaml"
    Writeyaml(path=p, message=m).echo_data()

次のように複数の追加の結果は以下のとおりです。

 

その#のPyYAMLとライブラリを除いて、ファイルには、YAMLを動作させることができる、PIP ruamelモジュールの取り付け方法:のpython -mピップruamel.yamlをインストール

公開された59元の記事 ウォン称賛19 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_43507959/article/details/97611645