How do I change directory (cd) in Python?

cd as in the shell command to change the working directory.

How do I change the current working directory in Python?


You can change the working directory with:

import os

os.chdir(path)

There are two best practices to follow when using this method:

  • Catch the exception (WindowsError, OSError) on invalid path. If the exception is thrown, do not perform any recursive operations, especially destructive ones. They will operate on the old path and not the new one.
  • Return to your old directory when you're done. This can be done in an exception-safe manner by wrapping your chdir call in a context manager, like Brian M. Hunt did in his answer.
  • Changing the current working directory in a subprocess does not change the current working directory in the parent process. This is true of the Python interpreter as well. You cannot use os.chdir() to change the CWD of the calling process.


    Here's an example of a context manager to change the working directory. It is simpler than an ActiveState version referred to elsewhere, but this gets the job done.

    Context Manager: cd

    import os
    
    class cd:
        """Context manager for changing the current working directory"""
        def __init__(self, newPath):
            self.newPath = os.path.expanduser(newPath)
    
        def __enter__(self):
            self.savedPath = os.getcwd()
            os.chdir(self.newPath)
    
        def __exit__(self, etype, value, traceback):
            os.chdir(self.savedPath)
    

    Or try the more concise equivalent(below), using ContextManager.

    Example

    import subprocess # just to call an arbitrary command e.g. 'ls'
    
    # enter the directory like this:
    with cd("~/Library"):
       # we are in ~/Library
       subprocess.call("ls")
    
    # outside the context manager we are back wherever we started.
    

    I would use os.chdir like this:

    os.chdir("/path/to/change/to")
    

    By the way, if you need to figure out your current path, use os.getcwd() .

    More here

    链接地址: http://www.djcxy.com/p/54692.html

    上一篇: 查找当前运行的文件的路径

    下一篇: 如何在Python中更改目录(cd)?