Search

Python 09. OS & shutil로 파일 & 폴더 관련 작업하기

Created at
2018/10/12
Updated at
2021/01/21
Tags
Keywords
3 more properties
목차
OS & shutil
OS와 shutil 두 가지 라이브러리를 통해 파이썬으로 파일과 폴더와 관련된 작업들을 할 수 있다.
OS: 운영체제와 관련된 함수와 클래스를 제공하는 라이브러리로 파일, 폴더와 관련된 함수와 클래스 제공
shutil: 파일, 폴더와 관련된 함수와 클래스를 제공하는 라이브러리
두 라이브러리 모두 파이썬에 기본으로 포함되어 있어 따로 설치할 필요는 없음
import os import shutil
Python
복사

1. 폴더 만들기

1.1 현재 디렉토리와 파일 리스트 확인

1.2 폴더 만들기

os.makedirs()

1.3 만들려는 폴더가 이미 존재하는지 확인하고 없으면 생성하기

os.path.isdir()

2. 파일 쓰기

3. 파일 리스트 읽기

4. 파일 및 폴더 존재 여부 확인

os.path.exists("os_dir/test1.txt") os.path.exists("os_dir3")
Python
복사
True False

5. 파일 및 폴더 타입 확인

os.path.isfile()
os.path.isdir()
os.path.isdir("os_dir"), os.path.isfile("os_dir") os.path.isdir("os_dir/test1.txt"), os.path.isfile("os_dir/test1.txt")
Python
복사
(True, False)
(False, True)

6. 파일 및 폴더 복사하기

shutil.copy(원본 경로, 대상 경로)
shutil.copyfile(원본 파일 경로, 대상 파일 경로): 원본이 파일이 아니라 폴더이면 에러 발생
shutil.copytree(원본 폴더 경로, 대상 폴더 경로): 원본이 폴더가 아니라 파일이면 에러 발생

7. 이름 바꾸기

os.rename(기존 파일명, 새로운 파일명)
os.rename("os_dir/copy1.txt", "os_dir/renamed.txt") os.listdir("os_dir")
Python
복사
['copy2.txt', 'renamed.txt', 'test1.txt', 'test2.txt', 'test3.csv']

8. 파일 및 폴더 삭제

8.1 파일 삭제

os.remove("os_dir/test3.csv") os.listdir("os_dir")
Python
복사
['copy2.txt', 'renamed.txt', 'test1.txt', 'test2.txt']

8.2 폴더 삭제

os.removedirs(): 폴더 안에 파일이 있으면 삭제되지 않음
shutil.rmtree(): 폴더 안에 파일이 있어도 삭제 가능

9. 권한설정

9.1 권한 설정 이해

10자리의 문자로 되어 있음 (e.g. rw-r--r--)
[:1]: type ("-" 파일, "d" 디렉토리)
[1:4]: 소유자의 권한
[4:7]: 그룹에 대한 권한
[7:]: 모든 사용자에 대한 권한
소유자/그룹/모든 사용자의 권한은 rwx로 나뉨
rwx: r(읽기), w(쓰기), x(실행)
rwx 각 권한이 있으면 1, 없으면 0(2진수)으로 표시 ⇒ 3자리의 2진수를 8진수로 변환
rwx: 111(2진수) → 7(8진수)
r--: 100(2진수) → 4(8진수)
wx: 011(2진수) → 3(8진수)

9.2 권한 설정 실습

os.chmod(파일경로, 권한)
위 내용 전체를 jupyter notebook으로 보려면,
참고자료
패스트캠퍼스, ⟪데이터사이언스스쿨 8기⟫ 수업자료
이태화, 일잘하는 평사원의 업무자동화