Как узнать / изменить текущий каталог в оболочке Python? - PullRequest
189 голосов
/ 24 ноября 2011

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

Ответы [ 6 ]

258 голосов
/ 24 ноября 2011

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

редактировать 2

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

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

15 голосов
/ 24 ноября 2011

хочешь

import os
os.getcwd()
os.chdir('..')
14 голосов
/ 28 марта 2012
>>> import os
>>> os.system('cd c:\mydir')

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

6 голосов
/ 07 июня 2017

Самый простой способ изменить текущий рабочий каталог в 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 голосов
/ 24 ноября 2011

Изменение текущего каталога не является способом поиска модулей в Python.

Скорее, посмотрите документы для Путь поиска модуля , чтобы узнать, как Python находит, какой модуль импортировать.

Вот соответствующий бит из Стандартных модулей section:

Переменная 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 голосов
/ 24 ноября 2011

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

...