본문 바로가기
파이썬/파이썬 궁금증 회고

.py와 .ipynb에서 같은 파일 사용하기(같은 파일 경로 사용하기), 다른 컴퓨터에서 같은 파일 사용하기

by davi_kr 2023. 5. 12.

목차

    반응형

    문제 상황

    /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에서 정보를 받아와서 변경해주면 원하는 대로 사용이 가능해집니다.

    전제는 파일이 같은 위치에 있고 로그인 된 유저만 바뀐 상태여야 한다는 점입니다!

    파일의 위치 자체가 틀어지면 그건 아예 다른 얘기라 위의 해결방법을 적용하기 어렵습니다.

     

    문제 해결!!

    반응형

    댓글