Pythonのプロジェクトなどで拡張子がyamlのYAMLファイルをよく見かけます。YAMLは主に設定ファイルとして利用されています。Dockerなどでも利用されているようです。
JSONと似ていますが、YAMLのほうが見やすいですね。ちなみにYAMLとJSONを変換することのできるサイトもあります。
この記事ではGoogleColab上で実行する方法を記載
YAMLファイルの読み込み
!pip install pyymal
import yaml
import io
import os
targetDirecotory = "/content/drive/MyDrive/test/output"
fileName = "test.yaml"
with open(os.path.join(targetDirecotory, fileName)) as f:
data = yaml.safe_load(f)
print(data["SETTING"]["PATH"]["inputpath"])
YAMLファイルの書き込み
!pip install pyymal
import yaml
import io
import os
outputDirecotory = "/content/drive/MyDrive/test/output"
fileName = "test.yaml"
with open(os.path.join(outputDirecotory, fileName), "w") as f:
data = {
"SETTING":{
"PATH":{
"inputpath":"/content/drive/MyDrive/test/input",
"outputpath":"/content/drive/MyDrive/test/output"
}
}
}
yaml.dump(data, f)
出力結果
SETTING:
PATH:
inputpath: /content/drive/MyDrive/test/input
outputpath: /content/drive/MyDrive/test/output
YAMLファイルを読み込んで一部編集し、別名で保存
読み込みと書き込みの合わせ技です
# yamlの更新(上書き)
!pip install pyymal
import yaml
import io
import os
outputDirecotory = "/content/drive/MyDrive/test/output"
fileName = "test.yaml"
newfileName = "newtest.yaml"
with open(os.path.join(outputDirecotory, fileName)) as f:
# ファイル読み込み
data = yaml.safe_load(f)
# データ編集
data["SETTING"]["PATH"]["inputpath"] = "C:testinput"
data["SETTING"]["PATH"]["outputpath"] = "C:testoutput"
# 別名でファイル保存
with io.open(os.path.join(outputDirecotory, newfileName), "w") as newFile:
yaml.dump(data,newFile)
別ファイルに保存されていることが確認できました
SETTING:
PATH:
inputpath: "C:test\input"
outputpath: "C:test\output"