파일 위치에서 명령어를 실행하는 법 없을까요?

blueocean의 이미지

안녕하세요.
제가 파이썬 프로그래밍을 하고 있는데, os.makedir("fold") 라는 명령어를 통해 fold 폴더를 현재 파이썬 파일이 존재하는 디렉토리에 만들고자 합니다.
하지만 이 스크립트를 현재 폴더에서가 아닌 다른 위치에서 실행하면 (ex ./home/a/a.py ) 그 위치에 폴더가 만들어지네요.

파일을 실행할 때, 현재 파일이 존재하는 위치에서 실행한 것처럼 하는 방법 없을까요?

절대경로는 사용하지 않고자 합니다.

감사합니다.

dontdieych의 이미지

blueocean의 이미지

감사합니다. 혹시 명령어나 쉘스크립트를 통해 파일이 존재하는 위치에서 실행한 것처럼 하는 방법은 없을까요?

dontdieych의 이미지

http://stackoverflow.com/a/1810760

파이썬 파일이 있는 위치를 찾아서 그 디렉토리로 cwd를 바꾼 다음 거기서 명령어를 실행하면 되지 않을까요? 제가 질문을 잘 이해를 못했습니다.

dontdieych의 이미지

파이썬 스크립트가 있는 위치를 찾아서 그 위치로 이동한 후 파이썬 스크립트를 실행하고 싶다. 이런 의미신가요?

blueocean의 이미지

네 맞습니다. "이 위치로 이동해서 파이썬 스크립트를 수행하라" 명령을 한 줄로 할 수 있을까요?

dontdieych의 이미지

cd /path/to/python.py
python python.py

이걸 원하시는 걸 아닐테구요.

os.chdir(os.path.dirname(os.path.realpath(__file__)))
os.makedirs("fold")

이렇게 하면 파이썬 스크립트가 있는 위치에 fold를 생성합니다. 이게 원하시는게 맞지요?

blueocean의 이미지

네 맞습니다. 감사합니다.

blueocean의 이미지

os.chdir()를 통해 문제점을 해결했습니다. 감사합니다.