공부일지

[Python] os.path 모듈 요약 본문

Computer/Module 사전

[Python] os.path 모듈 요약

이르리의 공부일지 2024. 9. 24. 21:28

작성일: 2024-09-24

 

상황


 

데이터를 수집하는 방법 중 가장 쉬운 방법은 공유된 파일을 다운로드하는 것이다.

오늘은 디렉토리에 담긴 여러 개 파일의 이름을 리스트에 담기 위해 

os 모듈과 os.path 모듈을 사용해보았다.

os 모듈은 너무 잡다한 기능이 많아서 오늘 필요한 기능인 

os.listdir()만 요약해두고, 나머지는 파일 이름을 조작하는 os.path 모듈 세부기능들이다.

자주 쓰니까 정리해둔다. (요약은 GPT가 해줌)

 

 

os 모듈 기능 중 os.listdir


  • os.listdir(path='.')
  • 설명: 지정된 디렉토리 내의 항목 이름들을 리스트로 반환하는 함수입니다. 반환되는 리스트는 임의의 순서를 가지며, 디렉토리 내에서 .(현재 디렉토리)와 ..(상위 디렉토리)는 포함되지 않는다.

만약 함수 호출 도중 파일이 추가되거나 삭제되면 그 파일의 이름이 포함될지는 명확하지 않다.

  • path는 경로 또는 파일 디스크립터일 수 있으며, 경로가 bytes 타입이면 반환되는 파일 이름들도 bytes 타입입니다. 그 외의 경우에는 문자열(str)로 반환된다.
  • 이 함수는 os.listdir 감사 이벤트를 발생시킨다.

다음은 os.listdir()의 간단한 예시:

import os

# 현재 디렉토리 내의 파일과 폴더 리스트를 출력
entries = os.listdir('.')
print(entries) # ['file1.txt', 'folder1', 'script.py']

위 코드를 실행하면, 현재 작업 디렉토리 내의 파일과 폴더 이름들이 리스트로 출력된다.

 

 

 

os.path 모듈


c.f.

os.path — Common pathname manipulations

 

os.path — Common pathname manipulations

Source code: Lib/genericpath.py, Lib/posixpath.py(for POSIX) and Lib/ntpath.py(for Windows). This module implements some useful functions on pathnames. To read or write files see open(), and for ac...

docs.python.org

 

 

주요 함수들 요약

  • os.path.abspath(path)
  • 설명: 주어진 경로 path를 절대 경로로 변환하여 반환.
    • 내부적으로 os.getcwd()로 현재 작업 디렉토리를 기준으로 경로를 조합한 후, normpath()를 호출해 정규화된 경로를 반환합니다.
    • 상대 경로를 절대 경로로 변환할 때 유용.
  • 예시:
  • os.path.abspath('file.txt') # 현재 경로가 /home/user일 때 # '/home/user/file.txt' 반환

 

  • os.path.basename(path)
  • 설명: 주어진 경로 path의 파일 이름이나 디렉토리 이름의 마지막 부분을 반환.
    • 경로에서 마지막 구성 요소를 반환하는 것으로, 경로 끝에 슬래시(/)가 있으면 빈 문자열을 반환합니다.
    • 파일 이름을 추출할 때 유용.
  • 예시:
  • os.path.basename('/home/user/file.txt') # 'file.txt' 반환 os.path.basename('/home/user/') # 빈 문자열('') 반환
  • os.path.commonpath(paths)
    • 경로 목록에서 가장 긴 공통 경로를 반환.
    • 절대 경로와 상대 경로가 섞여있으면 오류 발생.
    • 예시: os.path.commonpath(['/usr/lib', '/usr/local/lib']) → '/usr'
  • os.path.commonprefix(list)
    • 리스트에 있는 경로의 문자 단위로 가장 긴 공통 접두사를 반환.
    • 공통 경로가 아닌 접두사도 반환 가능.
    • 예시: os.path.commonprefix(['/usr/lib', '/usr/local/lib']) → '/usr/l'
  • os.path.dirname(path)
    • 경로의 디렉터리 이름을 반환.
    • 예시: os.path.dirname('/home/user/file.txt') → '/home/user'
  • os.path.exists(path)
    • 주어진 경로가 실제로 존재하면 True, 아니면 False를 반환.
    • 깨진 심볼릭 링크는 False.
  • os.path.lexists(path)
    • 경로가 존재하는지 여부를 반환하되, 깨진 심볼릭 링크도 True를 반환.
  • os.path.expanduser(path)
    • ~나 ~user로 시작하는 경로를 사용자의 홈 디렉터리로 치환.
    • 예시: os.path.expanduser('~') → '/home/user'
  • os.path.expandvars(path)
    • 환경 변수를 실제 값으로 치환.
    • 예시: os.path.expandvars('$HOME') → '/home/user'
  • os.path.getatime(path)
    • 파일의 마지막 접근 시간을 반환 (초 단위).
  • os.path.getmtime(path)
    • 파일의 마지막 수정 시간을 반환 (초 단위).
  • os.path.getctime(path)
    • 파일의 생성 시간을 반환 (Windows) 또는 메타데이터 변경 시간을 반환 (Unix).
  • os.path.getsize(path)
    • 파일 크기를 바이트 단위로 반환.
    • 예시: os.path.getsize('/path/to/file') → 1024 (파일 크기가 1KB일 경우)
  • os.path.isabs(path)
    • 경로가 절대 경로인지 여부를 반환.
  • os.path.isfile(path)
    • 경로가 존재하고, 일반 파일이면 True.
  • os.path.isdir(path)
    • 경로가 존재하고, 디렉터리이면 True.
  • os.path.islink(path)
    • 경로가 심볼릭 링크이면 True.
  • os.path.join(path, *paths)
    • 여러 경로 조각들을 결합하여 하나의 경로로 만듦.
    • 예시: os.path.join('/home', 'user', 'file.txt') → '/home/user/file.txt'
  • os.path.normpath(path)
    • 경로를 정규화하여 중복된 슬래시나 상위 참조(..)를 제거.
    • 예시: os.path.normpath('/home//user/../file.txt') → '/home/file.txt'
  • os.path.realpath(path)
    • 심볼릭 링크를 제거하여 실제 경로를 반환.
  • os.path.relpath(path, start=os.curdir)
    • 시작 지점부터 주어진 경로까지의 상대 경로를 반환.
  • os.path.samefile(path1, path2)
    • 두 경로가 같은 파일을 가리키면 True.
  • os.path.splitext(path)
    • 파일 경로를 확장자를 포함한 부분과 확장자 없이 나눈 튜플을 반환.
    • 예시: os.path.splitext('/path/file.txt') → ('/path/file', '.txt')