views:

30

answers:

2

I am working on a software installer for my current application. It needs to be installed to the System HDD. How owuld I detect the system drive and return the letter from Python?

Would the win32 extensions be useful? How about the os module pre packaged with Python?

A: 

If you install the win32 extensions, the following will get you the information you want:

In [82]: import win32api

In [83]: drives = win32api.GetLogicalDriveStrings()

In [84]: drives
Out[84]: 'C:\\\x00D:\\\x00E:\\\x00'

In [85]: drives.split('\x00')
Out[85]: ['C:\\', 'D:\\', 'E:\\', '']

Ignore the last item, due to a terminating character in the string returned by win32's GetLogicalDriveStrings function.

ars
@ars, thanks for the quick response, but that isn't what I need. That method returns every drive that is connected to the system. I just need the drive the OS is installed on. I figured out how to do and answered it below.
Zachary Brown
Ah, got it. You should just go ahead and accept your own answer.
ars
Just tried, it won't let me for two days.
Zachary Brown
+1  A: 

This is how to return the letter of the System drive on a Win32 platform:

import os
print os.getenv("SystemDrive")

The above snippet returns the system drive letter. In my case ( and most cases on windows) C:

Zachary Brown