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

발생하는 문제 및 실행환경

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

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

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는 바뀌지 않습니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.