- 2008/03/10 15:21
- 未分類
超x100簡単なパーサを作りました。
なんかPythonぽくないし、泥臭いし、なんかなぁ、って感じはしますが、
まぁ設定ファイルの読み込み程度には使えるでしょう。
多分。
以下、ソース。
————————————————————————-
import os.path
class ConfParser:
def __init__(self, file):
self.__values = {}
if os.path.isfile(file):
self.__parse(file)
def __parse(self, file):
try:
f = open(file, ‘r’)
except:
print(‘### File open error : %s’ % file)
for line in f:
self.__parseLine(line)
def __parseLine(self, line):
line = line.strip()
print(line)
if len(line) != 0 and line[0] != ‘#’: # comment or empty
words = line.split(‘=’)
if len(words) < 2:
raise(('Invalid value was given. : %s' % line))
else:
key = words[0].strip()
val = words[1].strip()
self.__values[key] = val
def get(self, key):
if key in self.__values:
return self.__values[key]
else:
return None
def set(self, key, value):
self.__values[key] = value
def printVal(self):
print(self.__values)
————————————————————————-
例えばこんな感じの設定ファイルを読んで、辞書型の変数に保持します。
————————————————————————-
#### Test Configure
# path
HOME = C:/Doduments and Settings/tai
# rootoa
ROOT = C:/
# SYSTEMS
SYSTEM = C:/system32
# PROGRAMS
PROGRAM = C:/Program Files
————————————————————————-
使い方は、
conf = ConfParser(filename)
みたいな感じです。
コンストラクタにファイル名を与えてください。
#はコメントです。
ただし、先頭についているものだけをコメントとみなすので、
行末につけたりしたら、動作に自信はもてませんww
必要な要件書いた後なら多分大丈夫ですが。
あとはsetとgetです。簡単です。
PYLやYAMLなんぞのお世話になるまでも無いほど簡単ですが、
簡単な設定ファイルを読みたいという要件は満たしているので、とりあえずOK。
- Newer: やっとこさニューマシンな予感?
- Older: YAML