python - is it possible to change working directory when executing a .py file in different folder? -
for example,here directory tree:
+--- test.py | +--- [subdir] | +--- another.py test.py:
import os os.system('python subdir/another.py') another.py:
import os os.mkdir('whatever') after running test.py ,i expected have folder whatever in subdir,but got is:
+--- test.py | +--- [subdir] | | | +--- another.py | +--- whatever the reason quite obvious:working directory hadn't been changed subdir.so possible change working directory when executing .py file in different folder? note:
- any function allowed,
os.systemexample os.system('cd xxx'),os.chdirnot allowed
edit: decide use context manager,following answer in
https://stackoverflow.com/posts/17589236/edit
import os import subprocess # call arbitrary command e.g. 'ls' class cd: def __init__(self, newpath): self.newpath = newpath def __enter__(self): self.savedpath = os.getcwd() os.chdir(self.newpath) def __exit__(self, etype, value, traceback): os.chdir(self.savedpath) # can enter directory this: cd("~/library"): # in ~/library subprocess.call("ls") # outside context manager started.
ummm, function so: os.chdir(path).
maybe it's little bit confusing or incosistent because function obtain current working directory called os.getcwd() , has no counterpart setter. nevertheless, doc says chdir changes cwd.
in python 3.x path can valid file descriptor, while in 2.x branch fchdir(fd) must used.
Comments
Post a Comment