* 이 포스트는 "파이썬 프로그래밍으로 지루한 작업 자동화하기" 의 내용을 참조해서 작성하였습니다.
* 파이썬 3.3을 기준으로 작성하였습니다.
파일과 파일 경로
파일 속성 : 파일 이름, 경로
경로 구분자
윈도우에서는 백슬래시(\), MacOS (OSX) 와 리눅스에서는 슬래시(/)
os.path.sep 으로 확인이 가능합니다.
os.path.join() 을 이용해서 운영체제에 관계 없는 경로 생성이 가능
>>> import os
>>> os.path.join('usr','bin','spam')
'usr/bin/spam' (MacOS or Linux)
'usr\\bin\\spam' (Windows)
유용한 메써드
os.getcwd() |
현재 경로를 확인 |
os.makedirs() |
새 폴더 만들기 |
os.listdir() | 매개변수 경로에 있는 파일 이름 문자열의 리스트를 돌려줍니다. |
상대 경로 vs 절대 경로
절대 경로 : 항상 루트 폴더로 시작한다.
상대 경로 : 프로그램의 현재 작업 디렉터리를 기준으로 시작한다.
. : 현재 디렉터리
.. : 부모 디렉터리
os.path 모듈
os.path 모듈에는 파일 이름과 파일 경로에 관련된 많은 유용한 기능을 포함하고 있습니다.
os.path.abspath() | 매개변수의 절대 경로 문자열을 돌려줍니다. |
os.path.isabs() | 매개변수가 절대 경로일 때 True를, 상대 경로일 때 False 를 돌려 줍니다. |
os.path.relpath() | 두번째 매개변수의 경로로 시작하는 첫번째 매개변수의 상대 경로 문자열을 돌려 줍니다. |
os.path.dirname() | 매개변수의 마지막 슬래시 앞에 오는 모든 문자열을 돌려 줍니다. (윈도에서는 백슬래시) - 보통 파일 경로가 됩니다. |
os.path.basename() | 매개변수의 마지막 슬래시 뒤에 오는 모든 문자열을 돌려 줍니다. (윈도에서는 백슬래시) - 보통 파일 이름이 됩니다. |
os.path.sep | 현재 운영체제의 경로 구분자 |
os.path.getsize() | 매개변수 안에 있는 파일의 크기를 바이트 단위로 돌려줍니다. |
os.path.exists() | 매개변수가 가리키는 파일 또는 폴더가 존재하면 True를, 그렇지 않다면 False를 돌려 줍니다. |
os.path.isfile() | 매개변수가 존재하며 파일이라면 True를, 그렇지 않다면 False를 돌려 줍니다. |
os.path.isdir() | 매개변수가 존재하며 폴더라면 True를, 그렇지 않다면 False를 돌려 줍니다. |
파일 읽기 / 쓰기 프로세스
1. open() 함수를 호출하여 File 객체를 돌려받습니다.
2. File 객체에 대해서 read() 혹은 write() 메써드를 사용하여 작업을 합니다.
3. File 객체의 close() 메써드를 이용하여 파일을 닫습니다.
파일 열기 속성
r | 파일을 읽기 모드로 열어서 돌려 줍니다. |
w | 파일을 쓰기 모드로 열어서 돌려 줍니다. (이미 파일이 존재하면 내용이 삭제됩니다.) |
a | 파일을 이어 쓰기 모드로 열어서 돌려 줍니다. (기존 파일이 존재하지 않으면 새 파일을 생성합니다.) |
x | 파일을 이어 쓰기 모드로 열어서 돌려 줍니다. (기존 파일이 존재하지 않으면 예외가 발생됩니다.) |
b | 파일을 바이너리 모드로 돌려 줍니다. |
+ | 파일을 업데이트 모드로 돌려 줍니다. |
파일 읽기 예제
>>> f = open('test.txt')
>>> data = f.read()
>>> f.close()
data에 파일 내용이 들어 갑니다.
파일 쓰기 예제
>>> f = open('test.txt', 'w')
>>> f.write("test")
>>> f.close()
test.txt 파일에 문자열 "test" 가 저장됩니다.
'프로그래밍 > Python' 카테고리의 다른 글
decorator 사용하기 (0) | 2024.06.06 |
---|---|
9. 파일 관리 (0) | 2019.02.21 |
7. 정규 표현식 (0) | 2019.01.09 |
6. 문자열 다루기 (0) | 2019.01.08 |
5. 사전 (Dictionary) (0) | 2019.01.07 |