인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

rn0731님의 프로필 이미지

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

파일 인코딩 변경 프로그램 만들기

디렉터리가 뭐에요?

작성

·

844

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
질문자

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

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

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

2

남박사님의 프로필 이미지
남박사
지식공유자

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

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

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

rn0731님의 프로필 이미지

작성한 질문수

질문하기