Я использую Python 3.2 в Windows 7. Когда я открываю оболочку Python, как я могу узнать, что является текущим каталогом, и как я могу изменить его на другой каталог, где находятся мои модули?
Я использую Python 3.2 в Windows 7. Когда я открываю оболочку Python, как я могу узнать, что является текущим каталогом, и как я могу изменить его на другой каталог, где находятся мои модули?
Ответы:
Вы можете использовать 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, но не знаю, как изменить.
редактировать
Под виндой:
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
PYTHONPATH
, но обратите внимание, что ОП указывает Windows ...
sys.path
внутрь скрипта.
PYTHONPATH
глобально, если у вас установлено более одного Python (или если у вас установлены программы, которые связывают Python с ними - другими словами, вы никогда не узнаете): это может нарушить вашу установку таинственными способами
вы хотите
import os
os.getcwd()
os.chdir('..')
os.chdir('C:/Users/Ajeya/Documents')
, или os.chdir('C:\\Users\\Ajeya\\Documents')
, или os.chdir(r'C:\Users\Ajeya\Documents')
.
os.getcwd()
только для целей отладки, чтобы мы могли видеть, что такое рабочий каталог, прежде чем мы изменим его. Код для фактического изменения cwd
простоos.chdir('..')
>>> import os
>>> os.system('cd c:\mydir')
Фактически, os.system()
может выполнить любую команду, которую может выполнить командная строка Windows, а не только изменить dir.
Изменение текущего каталога не является способом поиска модулей в 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/')
Самый простой способ изменить текущий рабочий каталог в 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")
Если вы 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"