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 ?
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?
Using pathlib you can get the folder in which the current file is located. __file__
is the pathname of the file from which the module was loaded. Ref: docs
import pathlib current_dir = pathlib.Path(__file__).parent current_file = pathlib.Path(__file__)
Doc ref: link
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With