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

时间:2011-11-23 20:06:02

标签: python windows python-3.x python-3.2

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

7 个答案:

答案 0 :(得分:250)

您可以使用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下名称会相同,但不知道如何更改。

修改

在Windows下:

set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib

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

编辑2

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

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

答案 1 :(得分:14)

你想要

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

答案 2 :(得分:12)

>>> import os
>>> os.system('cd c:\mydir')

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

答案 3 :(得分:6)

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

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

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

  

变量sys.path是一个确定字符串的字符串列表   解释器的模块搜索路径。它被初始化为默认值   路径取自环境变量PYTHONPATH,或来自a   如果未设置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 :(得分:5)

在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")

答案 5 :(得分:4)

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

答案 6 :(得分:0)

您可以尝试以下方法:

import os

current_dir = os.path.dirname(os.path.abspath(__file__))   # Can also use os.getcwd()
print(current_dir)                                         # prints(say)- D:\abc\def\ghi\jkl\mno"
new_dir = os.chdir('..\\..\\..\\')                         
print(new_dir)                                             # prints "D:\abc\def\ghi"