파이썬으로 "cd" 명령어 기능을 만들려면?


발생하는 문제 및 실행환경

파이썬으로 그림을 그려서 저장하는 프로그램을 만들고 있습니다. 스크립트가 실행된 위치가 아니라 다른 위치에 저장하고 싶은데

쉘에서 cd 하는 것 같이 지금 작업 중인 디렉토리를 바꾸려면 어떻게 해야 하나요?

  • 2016년 01월 19일에 작성됨

조회수 267


1 답변


좋아요
0
싫어요
채택취소하기

작업 디렉토리(CWD)는 os.chdir(path)로 바꿀 수 있습니다

CWD를 바꿀 때는 보통 기존 CWD(oldpath)를 다른 위치(newpath)로 바꿨다가 다시 oldpath로 복귀하는 방법으로 주로 쓰입니다.

import os

class chdir(object):
    def __init__(self, newpath):
        self.oldPath = os.getcwd()
        os.chdir(newpath)

    def saveImage(self, img):
        pass #

    def __del__(self):
        os.chdir(self.oldPath) #(주의)작업 중에 oldPath가 사라진 경우 error 발생함.

myClass = chdir("/")
#myClass.saveImage()

*subprocess에서 CWD를 바꾸는 건 현 process에 아무런 영향을 주지 않습니다. 즉, shell에서 os.chdir()을 수행하는 파이썬 스크립트를 실행하면 파이썬 프로그램 안의 CWD가 바뀔 뿐 shell의 CWD는 바뀌지 않습니다.

  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close