[Python-Dev] UUID module

Giovanni Bajo rasky at develer.com
Mon Jun 12 11:08:09 CEST 2006


Ka-Ping Yee <python-dev at zesty.ca> wrote:

>>> for dir in ['', r'c:\windows\system32', r'c:\winnt\system32']:
>>
>> Can we get rid of these absolute paths? Something like this should
>> suffice:
>>
>>>>> from ctypes import *
>>>>> buf = create_string_buffer(4096)
>>>>> windll.kernel32.GetSystemDirectoryA(buf, 4096)
>> 17
>>>>> buf.value.decode("mbcs")
>> u'C:\\WINNT\\system32'
>
> I'd like to, but i don't want to use a method for finding the system
> directory that depends on ctypes.

Why?

> Is there a more general way?

GetSystemDirectory() is the official way to find the system directory. You can
either access it through ctypes or through pywin32, but I guess we're moving to
ctypes for this kind of stuff, since it's bundled in 2.5. I don't know any
Python sys/os method to get a pointer to that directory. Another thing that you
might do is to drop those absolute system directories altogether. After all,
ipconfig should always be in the path.

As a last note, you are parsing ipconfig output assuming an English Windows
installation. My Italian Windows 2000 has localized output.

Giovanni Bajo



More information about the Python-Dev mailing list