목차
문제 상황
/Users/davi/Documents/GitHub/python_study/test.ipynb
/Users/davi/Documents/GitHub/python_study/test.py
와 같은 2개의 경로에서
/Users/davi/Documents/GitHub/function_packages/test.json을 사용하려 했더니
test.py는 문제가 없었는데
test.ipynb에서
[Errno 2] No such file or directory: 'function_packages/test.json'라는 오류가 떴습니다.
경로 문제라
import os
# 현재 경로 조회하기
print(os.getcwd())
경로를 조회해봤더니
/Users/davi/Documents/GitHub/python_study/test.py는 /Users/davi/Documents/GitHub가 경로로 나오고
/Users/davi/Documents/GitHub/python_study/test.ipynb는 /Users/davi/Documents/GitHub/python_study가 경로로 나왔습니다.
해결 방법
찾아보다가 그냥 상대 경로로 설정해둔 'function_packages/test.json'이라는 코드를 절대 경로로 변경해주면 된다는 걸 발견했습니다.
/Users/davi/Documents/GitHub/function_packages/test.json 이렇게 적어주면 이 경로를 정확히 지칭하는 거라서 오류가 발생하지 않았습니다.
다만, 이렇게 했더니 다른 문제가 생겼습니다.
제가 사용하는 맥북이 2대라서 다른 곳에서 코드를 작업하려면 매번 /Users/davi2/ ~ 이런 식으로 고쳐줘야 하는 상황이 됐습니다.
상대 경로로 두려고 했던 이유는 매번 고치면서 작업하기 싫어서였기 때문에, 이것도 해결할 수 있을지 찾아봤습니다.
# 현재 사용자 이름 가져오기
current_user = os.getenv("USER")
# 사용자만 상대적으로 바꾸기
json_file_name = "/Users/" + current_user + "/Documents/GitHub/function_packages/test.json"
결론적으로, 그냥 유저만 os에서 정보를 받아와서 변경해주면 원하는 대로 사용이 가능해집니다.
전제는 파일이 같은 위치에 있고 로그인 된 유저만 바뀐 상태여야 한다는 점입니다!
파일의 위치 자체가 틀어지면 그건 아예 다른 얘기라 위의 해결방법을 적용하기 어렵습니다.
문제 해결!!
'파이썬 > 파이썬 궁금증 회고' 카테고리의 다른 글
파이썬 concat - 특정 경로 내 CSV 파일들을 하나의 DF로 합치기(병합하기) (0) | 2024.07.22 |
---|---|
아나콘다 가상환경에서 파이썬 라이브러리 설치 안될 때 (0) | 2023.10.17 |
파이썬 SettingWithCopyWarning과 FutureWarning 해결하기: Pandas DataFrame에서 .copy() 사용 및 numeric_only 지정 (0) | 2023.04.18 |
맥) 아나콘다 네비게이터에서 VS code 안 보일 때 해결 방법 (0) | 2023.04.12 |
맥 환경에서 파이썬 아나콘다 가상환경 sys.path에 디렉토리 영구적으로 추가하기 (0) | 2023.04.10 |
댓글