How can I make my program have a consistent initial current working directory?

file-location, python, python-3.x, working-directory

Solution

It seems that IDLE changes its current working dir to location of the script that is executed, while when running the script using cmd doesn't do that and it leaves CWD as it is.

To change current working dir to the one containing your script you can use:

import os
os.chdir(os.path.dirname(__file__))
print(os.getcwd())

The `__file__` variable is available only if you execute script from file, and it contains path to the file. More on it here: Python __file__ attribute absolute or relative?

Problem

When I run the following script in IDLE ``` import os print(os.getcwd()) ``` I get output as ``` D:\testtool ``` but when I run from cmd prompt, I get ``` c:\Python33>python D:\testtool\current_dir.py c:\Python33 ``` How do I get same result which I got using IDLE ?

Original source

Related problems