如何在Python Shell中知道/更改当前目录?


219

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



4
@ astay13-我认为Ignacio意味着您不打算将目录更改为模块路径。您可能应该检查一下PYTHONPATH环境变量。
simon

Answers:


299

您可以使用该os模块。

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

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

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

然后,解释器也在此位置搜索imported模块。我想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


您是正确的编辑问题,以添加有关的建议PYTHONPATH,但请注意,OP指定Windows ...
simon

Windows下的PYTHONPATH有什么问题?但是我确定了答案。
wal-o-mat

我是否必须在Windows命令行或Python Shell中设置PYTHONPATH?
astay13

2
@ astray13:您还可以选择忽略环境变量,而是附加到sys.path脚本内部。
Steven Rumbalski 2011年

3
@ astay13:PYTHONPATH如果您安装了多个Python(或安装了将Python与之捆绑在一起的程序-换句话说,您永远不会知道),请不要进行全局设置:这可能会以神秘的方式
jfs

18

你要

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

1
os.chdir('C:\ Users \ Ajeya \ Documents \')^ SyntaxError:扫描字符串文字时EOL
AAI

1
@无论如何,如果在常规(非原始)Python字符串中使用反斜杠,则需要加倍反斜杠。Python还允许您使用正斜杠来代替。因此,os.chdir('C:/Users/Ajeya/Documents')os.chdir('C:\\Users\\Ajeya\\Documents')或或os.chdir(r'C:\Users\Ajeya\Documents')
查尔斯·达菲

最好注意,您os.getcwd()仅出于调试目的而调用,以便在更改目录之前可以看到工作目录。实际更改代码cwd只是os.chdir('..')
牙签海葵

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

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


文件“ <stdin>”,行1 os.system('cd c:\ Users \ Ajeya \ Documents \')^ SyntaxError:扫描字符串文字时EOL
AAI

6

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

相反,请参阅有关模块搜索路径的文档获取Python如何找到要导入的模块的信息。

以下是“ 标准模块”部分的相关内容:

变量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.

这个答案是金。.只需添加您的项目目录,如下所示:import sys sys.path.append('/home/g/PycharmProjects/your_project/')
gies0r

6

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

“ \\”的使用以及有关Windows计算机的说明。但我同意接受的答案更具描述性。
桑比(Sambeet),2015年

4

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


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"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.