파이썬 쉘에서 현재 디렉토리를 알고 / 변경하는 방법?


219

Windows 7에서 Python 3.2를 사용하고 있습니다. Python 셸을 열 때 현재 디렉토리가 무엇인지 어떻게 알 수 있으며 모듈이있는 다른 디렉토리로 변경하려면 어떻게해야합니까?


이것은 이미 [여기] 논의되었다 [1] : stackoverflow.com/questions/431684/how-do-i-cd-in-python
mudda

4
@ astay13-Ignacio는 디렉토리를 모듈 경로로 변경하려는 의도가 아니라고 생각합니다. PYTHONPATH 환경 변수를 확인해야합니다.
사이먼

답변:


299

os모듈을 사용할 수 있습니다 .

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

그러나 다른 모듈을 찾는다면 : PYTHONPATH리눅스 에서 환경 변수를 설정할 수 있습니다.

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

... 그리고 더 나은 : 사용 virtualenv하고 virtualenv_wrapper, 이것은 당신이 당신이 좋아하는 당신 같은 모듈 경로를 추가 할 수있는 개발 환경 (만들 수 있습니다 add2virtualenv설치 또는 "정상적인"작업 환경을 오염하지 않고 참조).

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


에 대한 제안을 추가하기 위해 질문을 편집 할 수 PYTHONPATH있지만 OP는 Windows를 지정합니다.
simon

그리고 Windows에서 PYTHONPATH의 문제점은 무엇입니까? 그러나 나는 대답을 고쳤다.
wal-o-mat

Windows 명령 행 또는 Python 쉘에서 PYTHONPATH를 설정해야합니까?
astay13

2
@ astray13 : 환경 변수를 무시하고 대신 sys.path스크립트 내부에 추가하는 옵션도 있습니다 .
Steven Rumbalski

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 문자열에서 사용하는 경우 백 슬래시를 두 배로 늘려야합니다. 파이썬은 슬래시를 대신 사용할 수도 있습니다. 따라서, os.chdir('C:/Users/Ajeya/Documents')또는 os.chdir('C:\\Users\\Ajeya\\Documents'), 또는 os.chdir(r'C:\Users\Ajeya\Documents').
Charles Duffy

os.getcwd()작업 디렉토리가 변경되기 전에 어떤 디렉토리인지 확인할 수 있도록 디버깅 목적으로 만 호출하는 것이 좋습니다 . 실제로 변경하는 코드 cwd는 단지os.chdir('..')
이쑤시개 Anemone

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

사실, os.system()dir 변경뿐만 아니라 Windows 명령 프롬프트가 실행할 수있는 모든 명령을 실행할 수 있습니다.


"<stdin>"파일, 1 행 os.system ( 'cd c : \ Users \ Ajeya \ Documents \') ^ 구문 오류 : 문자열 리터럴을 검색하는 동안 EOL
AAI

6

현재 디렉토리를 변경하는 것은 파이썬에서 모듈을 찾는 방법이 아닙니다.

오히려 파이썬이 가져올 모듈을 찾는 방법에 대한 모듈 검색 경로 문서를 참조하십시오 .

다음은 표준 모듈 섹션 의 관련 비트입니다 .

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

파이썬에서 현재 작업 디렉토리를 변경하는 가장 쉬운 방법은 '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

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"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.