file_path
설정 방법은 다음과 같습니다:python3 /experimental/launcher.py
를 실행하는 경우launcher.py
파일이 experimental
폴더 안에 위치하고 있습니다. 스크립트는 프로젝트 폴더의 루트에서 실행되므로 PCD 파일이 위치한 data
폴더까지의 상대 경로는 다음과 같습니다:file_path = "data/test.pcd"
data
폴더 내부의 test.pcd
파일을 가리킵니다.python3 -m experimental.launcher
을 실행하는 경우-m
플래그를 사용하여 모듈로서 Python 스크립트를 실행하면, Python은 해당 모듈이 위치한 디렉토리를 작업 디렉토리로 취급하지 않습니다. file_path
설정은 첫 번째 경우와 동일합니다:file_path = "data/test.pcd"
이 경로는 프로젝트 폴더 루트에서 data
폴더 내의 test.pcd
파일을 찾습니다.
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에서 파일 경로를 해석하는 방식과 파일을 실행하는 방식에 대한 기본 원리를 알아야 합니다.
파일 경로는 크게 두 가지 유형으로 나뉩니다:
절대 경로 (Absolute Path): 파일 시스템의 루트부터 시작하여 해당 파일이나 디렉토리까지의 완전한 경로를 나타냅니다. 예를 들어, /home/user/data/test.pcd
는 리눅스 시스템의 루트 디렉토리에서부터 test.pcd
파일까지의 경로를 나타냅니다.
상대 경로 (Relative Path): 현재 작업 중인 디렉토리에 대해 상대적인 위치를 나타내는 경로입니다. 예를 들어, ../data/test.pcd
는 현재 디렉토리에서 한 단계 상위 디렉토리로 가고 그 다음 data
디렉토리 안의 test.pcd
파일을 찾는 경로를 나타냅니다.
Python에서 파일을 실행할 때 중요한 개념은 작업 디렉토리 (Working Directory) 입니다. 작업 디렉토리는 Python 스크립트가 실행되는 위치를 기반으로 하며, 상대 경로는 이 디렉토리를 기준으로 해석됩니다.
프로젝트 폴더에서 스크립트 실행:
python3 /experimental/launcher.py
data/test.pcd
는 현재 작업 디렉토리 (프로젝트 폴더 루트)에서 data
폴더 내의 파일을 직접 가리킵니다.모듈로서 스크립트 실행:
python3 -m experimental.launcher
-m
플래그는 실행 위치를 변경하지 않고 모듈을 로드합니다. 따라서 상대 경로는 첫 번째 경우와 동일하게 작업 디렉토리를 기준으로 합니다.experimental
폴더에서 직접 스크립트 실행:
cd experimental
후 python3 pcd_to_2d_grid.py
experimental
폴더.../data/test.pcd
는 현재 디렉토리에서 상위 디렉토리로 이동하여 그곳의 data
폴더 내부를 찾습니다.이렇게 각 시나리오에서 작업 디렉토리가 어디인지, 그리고 상대 경로가 어떻게 해석되는지 이해하는 것이 중요합니다. 이를 통해 어디에서 스크립트를 실행하든지 상관없이 올바른 파일 경로를 설정할 수 있습니다.