首页 文章

如何知道/更改Python shell中的当前目录?

提问于
浏览 717
160

我在Windows 7上使用Python 3.2 . 当我打开Python shell时,我如何知道当前目录是什么以及如何将其更改为我的模块所在的另一个目录?

6 回答

  • 232

    您可以使用 os 模块 .

    >>> import os
    >>> os.getcwd()
    '/home/user'
    >>> os.chdir("/tmp/")
    >>> os.getcwd()
    '/tmp'
    

    但是,如果它是关于寻找其他模块:您可以设置一个名为 PYTHONPATH 的环境变量,在Linux下就像

    export PYTHONPATH=/path/to/my/library:$PYTHONPATH
    

    然后,解释器也在这个地方搜索 import ed模块 . 我想在Windows下名称会相同,但不知道如何更改 .

    edit

    在Windows下:

    set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
    

    (摘自http://docs.python.org/using/windows.html

    edit 2

    ......甚至更好:使用 virtualenvvirtualenv_wrapper ,这将允许您创建一个开发环境,您可以根据需要添加模块路径( add2virtualenv ),而不会污染您的安装或"normal"工作环境 .

    http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html

  • 13

    在python中更改当前工作目录的最简单方法是使用'os'包 . 下面是一个Windows计算机的例子:

    # Import the os package
    import os
    
    # Confirm the current working directory 
    os.getcwd()
    
    # Use '\\' while changing the directory 
    os.chdir("C:\\user\\foldername")
    
  • 8
    >>> import os
    >>> os.system('cd c:\mydir')
    

    实际上, os.system() 可以执行windows命令提示符可以执行的任何命令,而不仅仅是更改dir .

  • 5

    你要

    import os
    os.getcwd()
    os.chdir('..')
    
  • 4

    更改当前目录不是处理在Python中查找模块的方法 .

    相反,请参阅The Module Search Path的文档,了解Python如何找到要导入的模块 .

    以下是Standard Modules部分的相关位:

    变量sys.path是一个字符串列表,用于确定解释器的模块搜索路径 . 它被初始化为从环境变量PYTHONPATH获取的默认路径,或者如果未设置PYTHONPATH,则从内置默认路径初始化 . 您可以使用标准列表操作对其进行修改:>>> import sys >>> sys.path.append('/ ufs / guido / lib / python')

    回答关于获取和设置当前目录的原始问题:

    >>> help(os.getcwd)
    
    getcwd(...)
        getcwd() -> path
    
        Return a string representing the current working directory.
    
    >>> help(os.chdir)
    
    chdir(...)
        chdir(path)
    
        Change the current working directory to the specified path.
    
  • 4

    如果您 import os 可以使用 os.getcwd 获取当前工作目录,并且可以使用 os.chdir 更改目录

相关问题