Python을 사용하여 파일 찾기

Muhammad Maisam Abbas 2023년1월30일
  1. 파이썬에서 os.walk() 함수로 파일 찾기
  2. Python에서 glob.glob() 함수로 파일 찾기
  3. Python에서 Path.glob() 함수로 파일 찾기
Python을 사용하여 파일 찾기

이 자습서에서는 Python에서 파일을 찾는 방법에 대해 설명합니다.

파이썬에서 os.walk() 함수로 파일 찾기

파이썬을 사용하여 컴퓨터에서 특정 파일의 경로를 찾으려면 os 모듈을 사용할 수 있습니다. os 모듈은 우리 코드에 많은 os 관련 기능을 제공합니다. os.walk() 함수경로 문자열을 입력 매개변수로 사용하고 경로에 있는 각 파일의 디렉토리 경로, 디렉토리 이름 및 파일 이름을 제공합니다. 아래 샘플 코드는 os.walk() 함수를 사용하여 Python에서 파일을 찾는 방법을 보여줍니다.

import os


def findfile(name, path):
    for dirpath, dirname, filename in os.walk(path):
        if name in filename:
            return os.path.join(dirpath, name)


filepath = findfile("file2.txt", "/")
print(filepath)

출력:

/Users\maisa\Documents\PythonProjects\file2.txt

위 코드에서 os.walk() 함수를 사용하여 파일을 찾는 findfile() 함수를 선언했습니다. findfile() 함수는 파일 이름과 루트 경로를 입력 매개변수로 사용하고 지정된 파일의 경로를 반환합니다. 이 접근 방식은 파일의 절대 경로를 제공합니다.

Python에서 glob.glob() 함수로 파일 찾기

현재 문제를 해결하기 위해 glob.glob() 함수를 사용할 수도 있습니다. glob.glob() 함수는 경로 이름을 입력 매개변수로 사용하고 입력 인수와 일치하는 모든 파일 경로 목록을 반환합니다. 정규 표현식을 파일과 일치하는 입력 매개변수로 지정할 수 있습니다. 아래 샘플 코드는 glob.glob() 함수를 사용하여 Python에서 파일을 찾는 방법을 보여줍니다.

import glob

filepath = glob.glob("**/file.txt", recursive=True)
print(filepath)

출력:

['Find File\\file.txt']

파일 이름을 glob.glob() 함수에 대한 입력 매개변수로 전달했으며 파일의 상대 경로를 반환했습니다. 이 방법은 상대 경로와 파일의 절대 경로를 제공할 수 있습니다.

Python에서 Path.glob() 함수로 파일 찾기

또 다른 접근 방식은 pathlib 모듈을 사용하는 것입니다. 이 Python 모듈은 다양한 운영 체제의 파일 시스템 경로를 나타내는 클래스를 제공합니다. 특정 문제를 해결하기 위해 pathlib 모듈 내에서 Path.glob() 함수를 사용할 수 있습니다. 이 함수는 glob 모듈 내부의 glob() 함수와 유사합니다. Path.glob() 함수는 패턴을 입력 매개변수로 사용하고 입력 인수와 일치하는 경로 개체 목록을 반환합니다. 샘플 코드 조각은 pathlib 모듈을 사용하여 Python에서 파일을 찾는 방법을 보여줍니다.

import pathlib

filepath = sorted(pathlib.Path(".").glob("**/file2.txt"))
print(filepath)

출력:

[WindowsPath('file2.txt')]

파일과 일치하는 패턴 문자열을 Path.glob() 함수에 전달했습니다. Path.glob() 함수는 패턴과 일치하는 WindowsPath 개체 목록을 반환합니다. 이 방법을 사용하여 운영 체제에 특정한 경로 개체를 얻습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python File