user34537
user34537

Reputation:

Change directory to the directory of a Python script

How do I change directory to the directory with my Python script in? So far, I figured out I should use os.chdir and sys.argv[0]. I'm sure there is a better way then to write my own function to parse argv[0].

Upvotes: 20

Views: 26843

Answers (5)

Civil
Civil

Reputation: 79

import os
if __name__ == "__main__": # import this_file will not change cwd
    os.chdir(os.path.dirname(__file__))

Upvotes: 0

Scott 混合理论
Scott 混合理论

Reputation: 2332

on windows OS, if you call something like python somefile.py this os.chdir(os.path.dirname(__file__)) will throw a WindowsError. But this should work for all cases:

import os
absFilePath = os.path.abspath(__file__)
os.chdir( os.path.dirname(absFilePath) )

Upvotes: 2

iamas
iamas

Reputation: 321

os.chdir(os.path.dirname(os.path.abspath(__file__))) should do it.

os.chdir(os.path.dirname(__file__)) would not work if the script is run from the directory in which it is present.

Upvotes: 17

Miki
Miki

Reputation:

Sometimes __file__ is not defined, in this case you can try sys.path[0]

Upvotes: 7

ayrnieu
ayrnieu

Reputation: 1899

os.chdir(os.path.dirname(__file__))

Upvotes: 35

Related Questions