파이썬 파일에서 현재 파일 위치가 필요할 때가 있습니다. csv파일 등을 읽어오는 작업이 있는데 파일 위치가 변동될 때 특히 필요한데요. 오늘은 파이썬에서 현재 파일 위치를 읽어오는 방법에 대해서 알아보겠습니다.

 

 

1. __file__

해당 변수를 호출하면 현재 파이썬 파일의 위치를 가져올 수 있습니다. 그런데 주피터랩이나 주피터 노트북에서 해당 변수를 출력하면, NameError: name '__file__' is not defined라는 오류가 출력됩니다.

하지만 다른 파이썬 파일에서 import를 하면 이런 에러가 출력되지 않습니다. 예를 들어 test.py라는 파일에 __file__ 변수가 있고, import test를 이용하면 파일 위치를 잘 사용할 수 있습니다. 파일 이름까지 포함되므로 약간의 파싱은 필요합니다.

그래서 예외처리를 이용하면 __file__ 변수로 파일위치를 참조해서 하는 작업을 할 수 있습니다.

 

2. globals()['_dh'][0]

globals 함수를 이용하면 현재 파이썬 환경에 대한 다양한 정보를 가져올 수 있는데요. 이 방법은 문제가 하나 있습니다. 현재 실행하는 파일은 잘 작동합니다.

그런데 import를 할 때는 KeyError: '_dh'라는 에러가 발생합니다. import하는 파이썬 파일에서는 생성되는 환경설정 인자가 다르기 때문인데요.

그래서 생각보다 이 방법은 쓸모가 없습니다. 그보다는 위에서 사용한 __file__변수를 이용한 방법이 좋겠습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기