[python] PyYAML을 이용하여 YAML 파일의 데이터를 병합하고 암호화하기
YAML은 인간이 쉽게 읽고 쓸 수 있는 데이터 직렬화 포맷입니다. PyYAML은 파이썬에서 YAML 파일을 읽고 쓰는 데 사용되는 라이브러리입니다. 이번 포스트에서는 PyYAML을 사용하여 YAML 파일의 데이터를 병합하고 암호화하는 방법에 대해 알아보겠습니다.
PyYAML 설치하기
먼저, PyYAML을 설치해야 합니다. 다음 명령어를 사용하여 PyYAML을 설치합니다:
pip install pyyaml
YAML 파일 읽기
우선, YAML 파일을 읽어 옵니다. 다음 코드는 data.yaml
파일을 읽어와서 데이터를 확인하는 예시입니다:
import yaml
with open('data.yaml', 'r') as file:
data = yaml.safe_load(file)
print(data)
YAML 파일 병합하기
여러 개의 YAML 파일을 병합하여 하나의 YAML 파일로 만들 수 있습니다. 다음 코드는 file1.yaml
과 file2.yaml
파일을 병합하여 merged.yaml
파일로 저장하는 예시입니다:
import yaml
data = {}
with open('file1.yaml', 'r') as file:
data.update(yaml.safe_load(file))
with open('file2.yaml', 'r') as file:
data.update(yaml.safe_load(file))
with open('merged.yaml', 'w') as file:
yaml.dump(data, file)
YAML 데이터 암호화하기
YAML 데이터를 암호화하여 보안을 강화할 수 있습니다. 다음 코드는 YAML 파일을 읽어와서 데이터를 암호화하고, encrypted.yaml
파일로 저장하는 예시입니다:
import yaml
from cryptography.fernet import Fernet
# 암호화/복호화에 사용할 키 생성
key = Fernet.generate_key()
cipher = Fernet(key)
with open('data.yaml', 'r') as file:
data = yaml.safe_load(file)
encrypted_data = cipher.encrypt(yaml.dump(data).encode())
with open('encrypted.yaml', 'wb') as file:
file.write(encrypted_data)
YAML 데이터 복호화하기
암호화된 YAML 데이터를 복호화하여 원본 데이터를 얻을 수 있습니다. 다음 코드는 encrypted.yaml
파일을 읽어와서 데이터를 복호화하는 예시입니다:
import yaml
from cryptography.fernet import Fernet
# 복호화에 사용할 키 생성
key = Fernet.generate_key()
cipher = Fernet(key)
with open('encrypted.yaml', 'rb') as file:
encrypted_data = file.read()
decrypted_data = yaml.safe_load(cipher.decrypt(encrypted_data))
print(decrypted_data)
결론
PyYAML을 사용하여 YAML 파일의 데이터를 병합하고 암호화하는 방법에 대해 알아보았습니다. 이 기술은 여러 YAML 파일을 통합하여 데이터를 관리하거나, 데이터의 보안을 강화하는 데 유용합니다. PyYAML과 암호화 기술을 잘 활용하면 데이터 관리와 보안에 대한 요구를 충족할 수 있습니다.