If you don't want to add a dependency for a third-party module like winpaths, I would recommend using the environment variables already available in Windows:
Specifically you probably want ALLUSERSPROFILE
to get the location of the common user profile folder, which is where the Application Data directory resides.
e.g.:
C:> python -c "import os; print os.environ['ALLUSERSPROFILE']"
C:Documents and SettingsAll Users
EDIT: Looking at the winpaths module, it's using ctypes so if you wanted to just use the relevant part of the code without installing winpath, you can use this (obviously some error checking omitted for brevity).
import ctypes
from ctypes import wintypes, windll
CSIDL_COMMON_APPDATA = 35
_SHGetFolderPath = windll.shell32.SHGetFolderPathW
_SHGetFolderPath.argtypes = [wintypes.HWND,
ctypes.c_int,
wintypes.HANDLE,
wintypes.DWORD, wintypes.LPCWSTR]
path_buf = wintypes.create_unicode_buffer(wintypes.MAX_PATH)
result = _SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, 0, path_buf)
print path_buf.value
Example run:
C:> python get_common_appdata.py
C:Documents and SettingsAll UsersApplication Data
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…