개발관련

파이썬 강좌 6 - 파일 입출력

우원우 2024. 12. 20. 22:22
728x90
반응형

2024.12.20 - [개발관련] - 파이썬 강좌 5 - 함수

 

파이썬 강좌 5 - 함수

2024.12.20 - [개발관련] - 파이썬 강좌 4 - 함수 파이썬 강좌 4 - 함수2024.12.20 - [개발관련] - 파이썬 강좌3 - 파이썬 제어문 파이썬 강좌3 - 파이썬 제어문2024.12.20 - [개발관련] - 파이썬 강좌 2 - 파이썬

woowonwoo.tistory.com

 

6장: 파이썬 파일 입출력

파이썬은 텍스트 파일이나 이진 파일을 읽고 쓰는 작업을 쉽게 처리할 수 있는 기능을 제공합니다.
이 장에서는 파일 입출력의 기본 개념과 실습을 통해 파일을 다루는 방법을 배웁니다.


1. 파일 입출력의 기본 개념

파일 입출력은 데이터를 외부 파일에 저장하거나 외부 파일에서 데이터를 읽어오는 작업입니다.

작업설명

읽기(Read) 파일에서 데이터를 읽어옵니다.
쓰기(Write) 데이터를 파일에 씁니다.
추가(Append) 기존 파일 내용에 데이터를 추가합니다.

2. 파일 열기와 닫기

2.1 파일 열기

파일을 열기 위해 open() 함수를 사용합니다.

파일_객체 = open("파일경로", "모드")
 

모드설명

r 읽기 모드(기본값)
w 쓰기 모드(기존 내용 삭제)
a 추가 모드(기존 내용 유지)

2.2 파일 닫기

파일 작업이 끝난 후 **close()**를 사용해 파일을 닫아야 합니다.

파일_객체.close()

2.3 with문 사용하기

with문을 사용하면 파일을 자동으로 닫아줍니다.

with open("파일경로", "모드") as 파일_객체:
    작업내용

3. 텍스트 파일 읽기

3.1 파일 읽기 메서드

메서드설명

read() 파일의 모든 내용을 읽어서 문자열로 반환합니다.
readline() 파일의 한 줄씩 읽습니다.
readlines() 파일의 모든 줄을 리스트로 반환합니다.

3.2 파일 읽기 예제

# 파일 전체 읽기
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

# 파일 한 줄씩 읽기
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())  # 개행 문자 제거

4. 텍스트 파일 쓰기

4.1 파일 쓰기 예제

# 새 파일에 쓰기
with open("output.txt", "w") as file:
    file.write("Hello, Python!\n")
    file.write("파일 입출력을 배워봅시다.")

4.2 추가 모드로 파일 쓰기

# 기존 파일 내용에 추가
with open("output.txt", "a") as file:
    file.write("\n새로운 내용을 추가합니다.")

5. 이진 파일 읽기와 쓰기

5.1 이진 파일 읽기

이진 파일을 읽으려면 rb 모드를 사용합니다.

with open("image.jpg", "rb") as file:
    data = file.read()
    print(data)

5.2 이진 파일 쓰기

이진 파일을 쓸 때는 wb 모드를 사용합니다.

with open("copy.jpg", "wb") as file:
    file.write(data)

6. 파일 입출력 예제

6.1 텍스트 파일 읽기/쓰기

# 읽을 파일: input.txt, 쓸 파일: output.txt
with open("input.txt", "r") as infile, open("output.txt", "w") as outfile:
    for line in infile:
        outfile.write(line.upper())  # 내용을 대문자로 변환

6.2 로그 파일에 데이터 추가

# 현재 날짜와 시간을 기록
import datetime

with open("log.txt", "a") as log_file:
    now = datetime.datetime.now()
    log_file.write(f"{now}: 작업 완료\n")

 


7. 예외 처리와 파일 입출력

7.1 파일 작업 중 예외 처리

파일 작업은 실패할 가능성이 있으므로 예외 처리가 필요합니다.

try:
    with open("nonexistent.txt", "r") as file:
        content = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
except IOError:
    print("파일 작업 중 오류가 발생했습니다.")

8. 연습 문제

  1. 텍스트 파일에서 특정 단어 개수 세기
with open("example.txt", "r") as file:
    content = file.read()
    word_count = content.count("Python")
    print(f"'Python' 단어가 {word_count}번 등장합니다.")
  1. 이진 파일 복사하기
with open("source.jpg", "rb") as src, open("destination.jpg", "wb") as dest:
    dest.write(src.read())
  1. 파일에서 홀수 줄만 읽어 새로운 파일에 쓰기
with open("input.txt", "r") as infile, open("output.txt", "w") as outfile:
    for i, line in enumerate(infile, start=1):
        if i % 2 == 1:  # 홀수 줄
            outfile.write(line)

9. 요약

  1. open() 함수로 파일을 열고, 작업 후 close() 해야 합니다.
  2. 텍스트 파일은 r, w, a 모드로 읽거나 쓸 수 있습니다.
  3. 이진 파일은 rb, wb 모드로 읽거나 씁니다.
  4. 파일 작업 중 예외 처리를 통해 안전하게 작업을 수행할 수 있습니다.

다음 장에서는 파이썬의 예외 처리에 대해 학습하겠습니다! 😊

728x90
반응형