3

I have this program in Python which should save text files to a folder inside the "My Documents" of the user. The problem is that the program doesn't know the username, or the Windows version to know the correct path. How could I get this done?

marcocamejo
  • 788
  • 7
  • 19

3 Answers3

6

The doc says, the following code is expanded to the user's home directory on windows too..

homeDir = os.path.expanduser("~")

From the documentation:

On Windows, HOME and USERPROFILE will be used if set, otherwise a combination of HOMEPATH and HOMEDRIVE will be used. An initial ~user is handled by stripping the last directory component from the created user path derived above.


Also look into this for using Win32APIs

Community
  • 1
  • 1
UltraInstinct
  • 41,605
  • 12
  • 77
  • 102
  • @JBernardo: Its actually uses more environment-variables than that. I updated my post with the actual wordings. – UltraInstinct Jun 24 '12 at 03:48
  • this is not the correct solution, but it helps. This gives the Path to the user's home, not the user's My Documents folder – jeanc Jun 26 '12 at 04:15
4

Get from the environment variable:

os.environ['USERPROFILE']

or

os.environ['HOME']
JBernardo
  • 30,604
  • 10
  • 86
  • 109
  • On my Windows 10 system, it likes the 'USERPROFILE' version but doesn't like the 'HOME' one and reports an error. The USERPROFILE version returns "C:\Users\" – Developer63 Aug 30 '21 at 19:27
2

The winpaths package provides functions to retrieve the values you need.

Ned Batchelder
  • 345,440
  • 70
  • 544
  • 649