Python で Windows のレジストリ操作
PythonRecipe に久しぶりに書き込みしてきた。「214:Windowsレジストリにアクセスする」というネタ。
_winreg モジュールの EnumValue の使いにくさはガチ。Value ってもろ単数形…。持っている値を列挙するのが役目なのに、名前のとおり値を1つずつしか得られない。なので、レジストリを読むときには
import _winreg def enum_values(key): u"""_winreg.EnumValue(key, index) を for 文で使える形に """ try: i = 0 while True: yield _winreg.EnumValue(key, i) i += 1 except EnvironmentError: pass def read_values(key): u"""開かれているレジストリの値を辞書で返す """ values = {} for name, value, type_ in enum_values(key): values[name] = value return values
って関数を用意しておくとちょっとだけ幸せになれるかも、というのが主旨? あとは関数使用例など。