스트림을 통해서 윈도우 안에 파일을 생성한다. - 출력
운영체제의 힘을 빌려서 파일을 입출력한다.
input: 파이썬으로 가지고오기
output: 파이썬 밖으로 생성
파일열기: input + output, 둘 다 하는 것
(파일 기존에 있던 것을 확인한다? X)
1. 파일 열기
파이썬에서 파일 입출력은 다양한 용도로 사용됩니다. 텍스트 파일, 바이너리 파일, CSV 파일, JSON 파일 등을 읽고 쓸 수 있습니다. 파일을 열려면 open 함수를 사용합니다.
파일명: 열고자 하는 파일의 이름이나 경로
모드: 파일을 어떻게 열 것인지를 지정
r: 읽기 모드 (기본값) -> 안으로 input
w: 쓰기 모드 (파일이 있으면 덮어쓰기) -> 바깥으로 output
a: 추가 모드 (파일의 끝에 내용을 추가)
b: 바이너리 모드 (텍스트가 아닌 바이너리 데이터를 읽고/쓸 때 사용) -> 모드선택 (ex) rw, wb
+: 읽기와 쓰기 모드
2. 파일 쓰기
write(): 문자열을 파일에 쓴다.
writelines(): 문자열 리스트를 파일에 쓴다.
close 메서드를 사용해 파일을 닫습니다. 파일을 닫지 않으면 데이터 손실이 발생할 수 있습니다.
data.txt 파일에 쓰기 완료! |
※ 파일 경로
파일 경로는 파일의 위치를 나타내는 문자열입니다. 이 경로를 통해 파이썬은 파일을 찾아서 해당 파일을 읽거나 쓸 수 있습니다. 파일 경로는 크게 상대 경로와 절대 경로 두 가지로 구분됩니다.
- 상대 경로 (Relative Path): (ex. 코렙)
현재 작업 디렉토리에 대한 파일의 위치를 나타냅니다.
"data.txt": 현재 디렉토리의 data.txt 파일 (윈도우)
"./data.txt": 현재 디렉토리의 data.txt 파일 (리눅스 계열)
ㄴ두개 다 가능합니다.
"subfolder/data.txt": 현재 디렉토리의 하위 폴더 subfolder 안의 data.txt 파일
"../siblingfolder/data.txt": 현재 디렉토리와 상위폴더, 동일한 위치의 다른 폴더 siblingfolder 안의 data.txt 파일 - 절대 경로 (Absolute Path):
파일 시스템의 루트부터의 전체 경로를 나타냅니다.
예 (Windows):
"C:\\Users\\UserName\\Documents\\data.txt"
예 (Linux/Mac):
"/home/username/Documents/data.txt"
3. with 문 사용하기
파이썬의 with 문을 사용하면 파일을 열고 작업을 수행한 후 자동으로 파일을 닫을 수 있습니다.
단어를 입력하세요: 하하 단어를 입력하세요: 히히 단어를 입력하세요: quit |
4. 파일 읽기
read(): 파일의 모든 내용을 문자열로 반환
readline(): 파일의 한 줄을 문자열로 반환
readlines(): 파일의 모든 줄을 리스트로 반환
Hello, Python! Line 1 Line 2 |
Hello, Pyt |
Hello, Python! Line 1 Line 2 |
Hello, Python! Line 1 Line 2 |
하하 히히 ['하하', '히히'] |
['하하\n', '히히\n'] ['하하', '히히'] |
5. 예외 처리와 함께 사용하기
파일 입출력 중에는 여러 가지 오류가 발생할 수 있습니다. (예: 파일이 존재하지 않음).
이를 위해 try-except 블록을 사용해 오류를 처리할 수 있습니다.
- 파일이 존재하지 않을 경우
--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-2-eb6bfe1a0fee> in <cell line: 1>() ----> 1 with open("nofile.txt", "r") as f: 2 content = f.read() 3 print(content) FileNotFoundError: [Errno 2] No such file or directory: 'nofile.txt' |
파일이 존재하지 않습니다. |
'Python > 개념' 카테고리의 다른 글
Day 9-2. 파일 입출력 라이브러리 (0) | 2024.03.21 |
---|---|
Day 9-1. 변수 타입 어노테이션 (0) | 2024.03.21 |
Day 8-1. 파이썬 모듈 (0) | 2024.03.20 |
Day 7. 과제_주민번호 유효성 검사 (0) | 2024.03.20 |
Day 6. 과제_가위바위보 (0) | 2024.03.18 |