Notice : 해당 자료가 저작권등에 의해서 문제가 있다면 바로 삭제하겠습니다.
빠르게 활용하는 파이썬 3.2 프로그래밍 – 1장 파이썬 개요 및 설치, 2장 자료형 및 연산자
빠르게 활용하는 파이썬 3.2 프로그래밍 – 3장 함수
빠르게 활용하는 파이썬 3.2 프로그래밍 – 4장 제어
빠르게 활용하는 파이썬 3.2 프로그래밍 – 5장 클래스
빠르게 활용하는 파이썬 3.2 프로그래밍 – 6장 모듈
빠르게 활용하는 파이썬 3.2 프로그래밍 – 7장 예외처리
빠르게 활용하는 파이썬 3.2 프로그래밍 – 8장 입출력
빠르게 활용하는 파이썬 3.2 프로그래밍 – 10장 문자열이야기
빠르게 활용하는 파이썬 3.2 프로그래밍 – 11장 날짜이야기
빠르게 활용하는 파이썬 3.2 프로그래밍 – 12장 숫자이야기
빠르게 활용하는 파이썬 3.2 프로그래밍 – 13장 파일 시스템을 자유자재로
빠르게 활용하는 파이썬 3.2 프로그래밍 – 14장 데이터베이스
▣ 13장 파일 시스템을 자유자재로
13.1 os.path
파일 경로를 생성 및 수정, 파일 정보를 쉽게 다룰수 있음
from os.path import *
– os.path.abspath(path) : 현재경로를 Prefix로 해서 입력받은 경로를 절대경로로 바꿔 반환
– os.path.basename(path) : 입력받은 절대경로에서 기본경로를 반환(마지막을 뽑아냄)
– os.path.commonprefix(list) : 입력받은 list로부터 공통적인 Prefix를 추출
– os.path.dirname(path) : 입력받은 파일/디렉터리의 경로를 뽑아냄
– os.path.exists(path) : 입력받은 경로가 존재하면 True, 없으면 False(디렉토리가 있어고 읽기권한이 없으면 False)
– os.path.expanduser(path) : 입력받은 경로의 ‘~’를 현재 사용자 디렉토리의 절대경로로 대체
– os.path.expandvars(path) : path 안에 환경변수가 있다면 확장
– os.path.getatime(path) : 입력된 경로의 최근 접근시간을 반환
– os.path.getmtime(path) : 입력된 경로의 최근 수정시간을 반환
– os.path.getctime(path): 입력된 경로의 생성 시간을 반환
– os.path.getsize(path) : 경로에 대한 바이트단위의 파일크기를 반환
– os.path.isabs(path) : 경로가 절대 경로면 True, 아니면 False
– os.path.isfile(path) : 경로가 파일이면 True, 아니면 False
– os.path.isdir(path) : 경로가 디렉토리이면 True, 아니면 False
– os.path.join(path1[, path2[, …]]) : OS 형식에 맞게 경로의 문자열을 정규화
– os.path.normcase(path) : OS 에 맞게 입력받은 경로의 문자열을 정규화
– os.path.normpath(path) : 입력받은 경로의 문자열을 정규화(.이나 ..을 최대한 삭제)
– os.path.split(path) : 입력받은 경로를 디렉터리 부분과 파일부분으로 나눔
– os.path.splitdrive(path) : 입력받은 경로를 드라이버 부분과 나머지 부분으로 나눔
– os.path.splitext(path) : 입력받을 경로를 확장자 부분과 그외부분으로 나눔
http://docs.python.org/3/library/os.path.html
13.2 glob :glob 모듈은 윈도우의 dir 명령어나 리눅스의 ls 명령어와 유사한 기능을 제공
– glob.glob(pathname) : 경로에 대응되는 모든 파일 및 디렉토리의 리스트를 반환, *와 ?도 사용가능하고, [와 ]를 사용한 문자영 비교도 가능
– glob.iglob(pathname) : glob.glob와 동일하나 리스트를 반환하지 않고 이터레이터를 반환
13.3 tree 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import glob import os.path ndir = nfile = 0 def traverse( dir, depth ): global ndir, nfile for obj in glob.glob( dir+'/*'): if depth==0: prefix = '|--' else: prefix = '|' + ' '*depth + '|--' if os.path.isdir( obj ): ndir+=1 print( prefix + os.path.basename(obj) ) traverse( obj, depth+1 ) elif os.path.isfile( obj ): nfile+=1 print( prefix + os.path.basename( obj ) ) else: print( prefix + 'unknown object :', obj ) if __name__=='__main__': traverse( '.', 0 ) print( '\n', ndir, 'directories,', nfile,'files' ) input() |