• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

디렉터리가 뭐에요?

20.01.19 16:56 작성 조회수 511

2

1. 디렉터리가 뭐에요?

2. os.path.join가 뭐에요?

답변 3

·

답변을 작성해보세요.

2

("\\").join("디렉토리이름", "파일이름") 은 오류가 나는 구문입니다. 

("\\").join(["디렉토리이름", "파일이름"]) 처럼 join() 함수의 인자는 [] 리스트 형태로 넘겨야 오류가 나지 않습니다. 어쨌든 os.path.join() 함수는 목적 자체가 os 라이브러리에서 지원하는 경로를 조합해주는 목적의 함수이고 str.join() 함수는 문자열 함수의 기능으로 리스트의 요소들을 정해진 구분자(위에서 "\\") 를 사용해서 하나의 문자열로 리턴해주는 역할을 하는 함수 입니다.

서로 만들어진 목적은 다르겠지만 "디렉토리", "파일이름" 의 예를 들면 결론적으로는 같은 결과를 얻을 수 있습니다. 다만 join() 함수를 쓰려면 [] 리스트 형태로 데이터를 캐스팅 해야 하니 이미 문자열로 선언되어있는걸 또 한번 리스트로 변환하는 과정이 자원적으로는 낭비로 보입니다만 어떻게 쓰셔도 상관은 없는 부분입니다.

근데 만약 디렉토리가 여러개인경우 "c:\\", "abcd", "1234", "filename" 이렇게 4개의 인자가 있는 경우라면 str.join()을 쓰기 위해선 디렉토리명을 모두 리스트로 묶은다음에 다시 join 이 인자로 넘겨야 할테고 os.path.join() 를 쓴다면 그냥 인자로 모두 넘기면 됩니다. 

2

rn0731님의 프로필

rn0731

질문자

2020.01.22

os.path.join("디렉토리이름", "파일이름")과

("\\").join("디렉토리이름", "파일이름")가 비슷한 것 같은데 아닌가요?

차이가 있다면 무엇인가요?

2

1. 하드디스크에는 파일과 디렉토리로 구분되어 데이터가 저장됩니다. 윈도우에서는 다른말로 폴더라고도 합니다. 유닉스나 맥에서는 디렉토리라고 합니다. 특정 OS 에서는 카탈로그라는 단어도 씁니다.

2. os.path.join("디렉토리이름", "파일이름") = 인자로 넘긴 경로들을 묶어서 하나의 경로로 만들어주는 함수 입니다. 그냥 "디렉토리이름" + "파일이름" 을 해도 결과는 같습니다. 

os.path.join("c:\\", "test", "python", "test.py") == "c:\\test\\python\\test.py"