경로 설정

About_work·2024년 5월 14일
0

python 기초

목록 보기
56/65
  • 각 시나리오에 따라 스크립트에서 사용할 file_path 설정 방법은 다음과 같습니다:

1. 특정 프로젝트 폴더에서 python3 /experimental/launcher.py를 실행하는 경우

  • 이 경우에는 launcher.py 파일이 experimental 폴더 안에 위치하고 있습니다. 스크립트는 프로젝트 폴더의 루트에서 실행되므로 PCD 파일이 위치한 data 폴더까지의 상대 경로는 다음과 같습니다:
file_path = "data/test.pcd"
  • 이 경로는 프로젝트 폴더 루트에서 직접 data 폴더 내부의 test.pcd 파일을 가리킵니다.

2. 특정 프로젝트 폴더에서 python3 -m experimental.launcher을 실행하는 경우

  • -m 플래그를 사용하여 모듈로서 Python 스크립트를 실행하면, Python은 해당 모듈이 위치한 디렉토리를 작업 디렉토리로 취급하지 않습니다.
  • 이 경우, 실행 위치는 여전히 프로젝트 폴더의 루트로 간주됩니다. 따라서 file_path 설정은 첫 번째 경우와 동일합니다:
file_path = "data/test.pcd"

이 경로는 프로젝트 폴더 루트에서 data 폴더 내의 test.pcd 파일을 찾습니다.

3. cd experimental로 들어간 후, python3 pcd_to_2d_grid.py를 실행하는 경우

이 경우, 현재 작업 디렉토리는 experimental 폴더가 됩니다. 따라서 data 폴더에 접근하기 위해서는 한 단계 상위 디렉토리로 이동해야 합니다. 그러므로 file_path는 다음과 같이 설정해야 합니다:

file_path = "../data/test.pcd"

이 경로는 experimental 디렉토리에서 상위 디렉토리로 이동한 후, data 폴더 내의 test.pcd 파일을 가리킵니다.

각 경우에 맞게 file_path를 설정함으로써, 스크립트가 올바르게 PCD 파일을 찾아 작업을 수행할 수 있습니다.


각 시나리오에서 file_path 설정이 왜 그렇게 되는지를 이해하기 위해, Python에서 파일 경로를 해석하는 방식과 파일을 실행하는 방식에 대한 기본 원리를 알아야 합니다.

파일 경로

파일 경로는 크게 두 가지 유형으로 나뉩니다:

  1. 절대 경로 (Absolute Path): 파일 시스템의 루트부터 시작하여 해당 파일이나 디렉토리까지의 완전한 경로를 나타냅니다. 예를 들어, /home/user/data/test.pcd는 리눅스 시스템의 루트 디렉토리에서부터 test.pcd 파일까지의 경로를 나타냅니다.

  2. 상대 경로 (Relative Path): 현재 작업 중인 디렉토리에 대해 상대적인 위치를 나타내는 경로입니다. 예를 들어, ../data/test.pcd는 현재 디렉토리에서 한 단계 상위 디렉토리로 가고 그 다음 data 디렉토리 안의 test.pcd 파일을 찾는 경로를 나타냅니다.

Python 파일 실행 방식과 작업 디렉토리

Python에서 파일을 실행할 때 중요한 개념은 작업 디렉토리 (Working Directory) 입니다. 작업 디렉토리는 Python 스크립트가 실행되는 위치를 기반으로 하며, 상대 경로는 이 디렉토리를 기준으로 해석됩니다.

각 시나리오별 설명

  1. 프로젝트 폴더에서 스크립트 실행:

    • 경로: python3 /experimental/launcher.py
    • 작업 디렉토리: 프로젝트 폴더의 루트.
    • 상대 경로: data/test.pcd는 현재 작업 디렉토리 (프로젝트 폴더 루트)에서 data 폴더 내의 파일을 직접 가리킵니다.
  2. 모듈로서 스크립트 실행:

    • 경로: python3 -m experimental.launcher
    • 작업 디렉토리: 여전히 프로젝트 폴더의 루트.
    • 상대 경로: -m 플래그는 실행 위치를 변경하지 않고 모듈을 로드합니다. 따라서 상대 경로는 첫 번째 경우와 동일하게 작업 디렉토리를 기준으로 합니다.
  3. experimental 폴더에서 직접 스크립트 실행:

    • 경로: cd experimentalpython3 pcd_to_2d_grid.py
    • 작업 디렉토리: experimental 폴더.
    • 상대 경로: ../data/test.pcd는 현재 디렉토리에서 상위 디렉토리로 이동하여 그곳의 data 폴더 내부를 찾습니다.

이렇게 각 시나리오에서 작업 디렉토리가 어디인지, 그리고 상대 경로가 어떻게 해석되는지 이해하는 것이 중요합니다. 이를 통해 어디에서 스크립트를 실행하든지 상관없이 올바른 파일 경로를 설정할 수 있습니다.

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글