60

Possible Duplicate:
How to find the real user home directory using python?
How to get the home directory in Python?

I want to access /home/weasel to read some files from there but I don't want to write the full path of course - so other users can use the script.. how do you know your username or your home dir with python on Linux?

Thanks

Community
  • 1
  • 1
WeaselFox
  • 7,100
  • 7
  • 42
  • 73

2 Answers2

142

To get the homedir in python, you can use os.path.expanduser('~').

This also works if it's part of a longer path, such as os.path.expanduser('~/some/directory/file.txt'). If there is no ~ in the path, the function will return the path unchanged.

So depending on what you want to do it's better than reading os.environ['HOME']

The username is available through getpass.getuser()

Stan James
  • 2,345
  • 1
  • 26
  • 35
ThiefMaster
  • 298,938
  • 77
  • 579
  • 623
  • `os.environ['HOME']` seems more intuitive for me, because I often use `$HOME` in Linux. But could you point out some use cases where using `expanduser` might be more preferable? – flow2k Sep 25 '19 at 21:12
26

The portable way of getting the home directory in Python is using os.path.expanduser('~').

Michael Wild
  • 23,541
  • 3
  • 40
  • 40