[파이썬] 파일 경로와 파일 필터링

파이썬은 파일 및 디렉토리를 다루는데 매우 편리한 기능을 제공합니다. 이번 글에서는 파일 경로를 다루고 파일 필터링을 수행하는 방법에 대해 알아보겠습니다.

파일 경로 다루기

파일 경로는 파일 또는 디렉토리의 위치를 나타내는 문자열입니다. 파이썬에서 파일 경로를 다루기 위해서는 os.path 모듈을 사용할 수 있습니다. os.path 모듈은 파일 경로를 분석하고 조작하는데 필요한 다양한 함수를 제공합니다.

import os

# 현재 작업 디렉토리를 얻습니다.
current_dir = os.getcwd()
print(f"현재 작업 디렉토리: {current_dir}")

# 경로를 조합합니다.
file_path = os.path.join(current_dir, "example.txt")
print(f"파일 경로: {file_path}")

# 경로의 디렉토리 부분과 파일 이름 부분을 분리합니다.
dir_name = os.path.dirname(file_path)
file_name = os.path.basename(file_path)
print(f"디렉토리: {dir_name}")
print(f"파일 이름: {file_name}")

위의 예제에서는 os.getcwd() 함수를 사용하여 현재 작업 디렉토리를 얻고, os.path.join() 함수를 사용하여 현재 작업 디렉토리와 파일 이름을 조합합니다. 그리고 os.path.dirname() 함수와 os.path.basename() 함수를 사용하여 파일 경로를 디렉토리 부분과 파일 이름 부분으로 분리합니다.

파일 필터링

특정 조건을 만족하는 파일들만 선택하여 작업을 수행해야 할 때가 있습니다. 이때 파일 필터링을 사용하면 편리하게 원하는 파일들을 선택할 수 있습니다.

import os

# 현재 디렉토리의 모든 파일을 리스트로 가져옵니다.
files = os.listdir()

# 특정 확장자를 가진 파일들을 필터링합니다.
txt_files = [file for file in files if file.endswith(".txt")]
print(f"txt 파일들: {txt_files}")

# 파일 크기가 특정 용량보다 작은 파일들을 필터링합니다.
small_files = [file for file in files if os.path.getsize(file) < 1024]
print(f"작은 파일들: {small_files}")

위의 예제에서는 os.listdir() 함수를 사용하여 현재 디렉토리의 모든 파일을 가져온 후, 리스트 컴프리헨션을 사용하여 특정 조건을 만족하는 파일들만 선택합니다. 첫 번째 예제에서는 .txt 확장자를 가진 파일들을 필터링하였고, 두 번째 예제에서는 파일 크기가 1024바이트보다 작은 파일들을 필터링하였습니다.

결론

파이썬은 파일 경로를 다루고 파일 필터링을 수행하는데 매우 유용한 기능을 제공합니다. os.path 모듈을 이용하여 파일 경로를 조작하고, 리스트 컴프리헨션을 사용하여 파일 필터링을 손쉽게 수행할 수 있습니다. 이러한 기능을 활용하여 파일 및 디렉토리를 효율적으로 관리하고 작업할 수 있습니다.