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

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

6 ответов

Решение

Вы можете использовать os модуль.

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

Но если речь идет о поиске других модулей: вы можете установить переменную окружения с именем PYTHONPATHпод линуксом было бы вроде

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

Затем переводчик также ищет в этом месте importмодули ed. Я думаю, что имя будет одинаковым под 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

Ты хочешь

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

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

Самый простой способ изменить текущий рабочий каталог в python - использовать пакет 'os'. Ниже приведен пример для компьютера с Windows:

#import the os package
import os
# Confirm the current working directory 
os.getcwd()
# use '\\' while chaning the directory 
os.chdir("C:\\user\\foldername")

Изменение текущего каталога не является способом поиска модулей в 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 os ты можешь использовать os.getcwd чтобы получить текущий рабочий каталог, и вы можете использовать os.chdir изменить свой каталог

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

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"


Другие вопросы по тегам