Как узнать/изменить текущий каталог в оболочке Python?

Я использую Python 3.2 в Windows 7. Когда я открываю оболочку Python, как я могу узнать, что представляет собой текущий каталог и как я могу изменить его в другой каталог, где находятся мои модули?

Ответ 1

Вы можете использовать модуль 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

... и даже лучше: используйте virtualenv и virtualenv_wrapper, это позволит вам создать среду разработки, в которой вы можете добавлять пути к модулю по своему усмотрению (add2virtualenv) без загрязнения вашей установки или "нормального", рабочей среды.

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

Ответ 2

вы хотите

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

Ответ 3

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

Фактически, os.system() может выполнить любую команду, которую может выполнить командная строка Windows, а не только изменить каталог.

Ответ 4

Изменение текущего каталога не является способом поиска модулей в 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.

Ответ 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")

Ответ 6

Если вы import os, вы можете использовать os.getcwd для получения текущего рабочего каталога, и вы можете использовать os.chdir для изменения каталога

Ответ 7

Вы можете попробовать это:

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"