파이썬(Python)에서 XML을 DB(데이터베이스)처럼 이용
간단한 작업을 해야 할 경우에 덩치가 큰 DB를 이용하기엔 부담이 크다. 이럴때 XML을 이용하여 작업을 하곤 하는데 항상 할때마다 잊게되고 또다시 검색을 하는게 번거로워 기록해 논다.
XML파일은 이런 형태로 저장한다.
<?xml version="1.0" encoding="UTF-8"?>
<medias>
<media>
<filename>test1.png</filename>
<filetype>image</filetype>
<runtime>10</runtime>
</media>
<media>
<filename>test1.mp4</filename>
<filetype>video</filetype>
<runtime>693</runtime>
</media>
<media>
<filename>test2.mp4</filename>
<filetype>video</filetype>
<runtime>726</runtime>
</media>
</medias>
이런 형태로 DB처럼 저장을 해서 파이썬에서 읽어 처리를 하면 되는데 여러 곳에서 추천을 하기도 하고 직접 사용해보니 편리했던 패키지(라이브러리)는 ElementTree 였다.
다른 방식의 사용법들은 검색해가며 찾아보면 될터이고 내 경우엔 목적이 있으니 딱 그 정도까지만 처리를 한다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from xml.etree.ElementTree import parse | |
tree = parse("playlist.xml") | |
root = tree.getroot() | |
for element in root.findall("media"): | |
print element.findtext("filename") | |
print element.findtext("filetype") | |
print element.findtext("runtime") |
예전엔 프로그램을 만들었다는 느낌이 강했는데 요즘은 짜깁기한다는 느낌이 더 강하다. 이렇게 하는게 분명 편리하고 맞는것인데도 왠지 꺼리낌한 기분이 드는걸 보면 나도 확실히 요즘 사람은 아닌듯하다.
기껏해야 백여개의 자료를 처리해야 하는곳에 DB를 연결해 사용했던 시절엔 왜 그리 DB에 집착을 했던건지...
물론 아주 오래전에는 PC의 저장장치 속도가 워낙 느려서 이런식의 처리는 엄두도 못내긴 했지만...