Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get the current working directory using python 3?

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 ?

like image 391
Shriram Avatar asked Jun 28 '13 07:06

Shriram


2 Answers

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?

like image 191
Maciek Avatar answered Sep 21 '22 11:09

Maciek


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

like image 41
butsyk Avatar answered Sep 19 '22 11:09

butsyk