Reputation: 20763
I have a little problem with ~
in my paths.
This code example creates some directories called ~/some_dir
and do not understand that I wanted to create some_dir
in my home directory.
my_dir = "~/some_dir"
if not os.path.exists(my_dir):
os.makedirs(my_dir)
Note this is on a Linux-based system.
Upvotes: 243
Views: 81219
Reputation: 319571
You need to expand the tilde manually:
my_dir = os.path.expanduser('~/some_dir')
Upvotes: 398
Reputation: 54454
The conversion of ~/some_dir
to $HOME/some_dir
is called tilde expansion and is a common user interface feature. The file system does not know anything about it.
In Python, this feature is implemented by os.path.expanduser:
my_dir = os.path.expanduser("~/some_dir")
Upvotes: 101
Reputation: 42168
That's probably because Python is not Bash and doesn't follow same conventions. You may use this:
homedir = os.path.expanduser('~')
Upvotes: 20