카테고리 없음

[python] 로컬 PC내의 특정 디렉토리에 있는 모든 파일 반환하기

지추월자 2023. 7. 21. 09:09
반응형

import os 모듈에는 os.listdir() 함수는 파이썬의 os 모듈에서 제공하는 함수로, 특정 디렉토리 내의 모든 파일과 디렉토리의 이름을 리스트로 반환하는 역할을 합니다.

import os

# 현재 작업 디렉토리의 모든 파일과 디렉토리를 출력합니다.
print(os.listdir('.'))

# 특정 디렉토리, 예를 들어 "/home/user/documents" 내의 모든 파일과 디렉토리를 출력합니다.
print(os.listdir('/home/user/documents'))

위 코드의 첫 번째 예에서, os.listdir('.')는 현재 작업 디렉토리 (.) 내의 모든 파일과 디렉토리의 이름을 리스트로 반환합니다. 두 번째 예에서는 /home/user/documents 경로의 모든 파일과 디렉토리의 이름을 반환합니다.

이 리스트는 파일과 디렉토리의 이름만 포함하며, 해당 항목이 파일인지 디렉토리인지에 대한 정보는 제공하지 않습니다. 이 정보가 필요하다면, os.path.isfile() 또는 os.path.isdir() 등의 함수를 사용해야 합니다.

윈도우에서는 경로를 넣기 위해서는 반드시 맨 앞에 'r'을 붙여서 raw string(원시 문자열)을 표현하는 기능을 제공합니다! 

윈도우에서는 디렉토리 경로를 표현할 때 보통 백슬래시(\)를 사용합니다. 그런데 파이썬에서 문자열을 표현할 때 백슬래시는 특별한 의미를 가지는 이스케이프 문자로 취급됩니다. 예를 들어, \n은 개행(줄바꿈)을, \t는 탭을 나타내는 등의 용도로 사용됩니다.

따라서 윈도우의 폴더 경로를 문자열로 표현하려고 하면, 백슬래시 때문에 원치 않는 이스케이프 문자로 해석되는 문제가 발생할 수 있습니다. 예를 들어, C:\new_folder라는 경로를 표현하려고 하면, \n 부분이 개행 문자로 해석되어 예상치 못한 결과를 초래할 수 있습니다.

이런 문제를 피하기 위해, 파이썬에서는 문자열 앞에 r을 붙여서 raw string(원시 문자열)을 표현하는 기능을 제공합니다. r을 붙인 문자열에서는 백슬래시가 이스케이프 문자로 해석되지 않고, 그대로의 문자로 취급됩니다. 예를 들어, r"C:\new_folder"는 C:\new_folder라는 문자열 그대로를 의미합니다.

반응형