본문 바로가기
-----ETC2-----/Python

[Python] Week 13: 파일 입출력

by cogito21_python 2024. 6. 1.
반응형

Day 1: 파일 열기와 닫기

  • 강의 내용:
    • 파일 입출력의 기본 개념
      • 파일 입출력의 필요성
      • 파일 처리 단계
    • 파일 열기와 닫기
      • open() 함수
      • 파일 모드 (읽기, 쓰기, 추가)
      • close() 함수
  • 실습:
    • 파일 열기와 닫기 예제 작성
# 파일 열기와 닫기
file = open("example.txt", "w")  # 쓰기 모드로 파일 열기
file.write("Hello, Python!")
file.close()  # 파일 닫기

 

Day 2: 파일 읽기

  • 강의 내용:
    • 파일 읽기 모드
      • read() 메서드: 파일의 모든 내용 읽기
      • readline() 메서드: 한 줄씩 읽기
      • readlines() 메서드: 모든 줄을 리스트로 읽기
    • 파일 읽기 시 주의사항
      • 파일의 크기
      • 파일 위치 포인터
  • 실습:
    • 파일 읽기 예제 작성
# 파일 읽기 예제
file = open("example.txt", "r")  # 읽기 모드로 파일 열기

# read() 메서드
content = file.read()
print(content)

# 파일 위치 포인터를 처음으로 되돌리기
file.seek(0)

# readline() 메서드
line = file.readline()
print(line)

# 파일 위치 포인터를 처음으로 되돌리기
file.seek(0)

# readlines() 메서드
lines = file.readlines()
print(lines)

file.close()  # 파일 닫기

 

Day 3: 파일 쓰기

  • 강의 내용:
    • 파일 쓰기 모드
      • write() 메서드: 파일에 내용 쓰기
      • writelines() 메서드: 여러 줄을 파일에 쓰기
    • 파일 쓰기 시 주의사항
      • 기존 파일 덮어쓰기
      • 파일 모드 선택
  • 실습:
    • 파일 쓰기 예제 작성
# 파일 쓰기 예제
file = open("example.txt", "w")  # 쓰기 모드로 파일 열기

# write() 메서드
file.write("Hello, Python!\n")
file.write("This is a new line.\n")

# writelines() 메서드
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
file.writelines(lines)

file.close()  # 파일 닫기

 

Day 4: 파일 추가 쓰기

  • 강의 내용:
    • 파일 추가 쓰기 모드
      • 파일 모드 'a' (append)
      • 기존 파일 내용 유지
    • 파일 추가 쓰기 예제
  • 실습:
    • 파일 추가 쓰기 예제 작성
# 파일 추가 쓰기 예제
file = open("example.txt", "a")  # 추가 쓰기 모드로 파일 열기

# 기존 파일 내용 유지하며 새 내용 추가
file.write("Appending a new line.\n")

file.close()  # 파일 닫기

 

Day 5: with 구문을 사용한 파일 처리

  • 강의 내용:
    • with 구문의 개념
      • with 구문을 사용한 파일 열기
      • 자동으로 파일 닫기
    • with 구문을 사용한 파일 읽기와 쓰기
  • 실습:
    • with 구문을 사용한 파일 처리 예제 작성
# with 구문을 사용한 파일 읽기
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

# with 구문을 사용한 파일 쓰기
with open("example.txt", "w") as file:
    file.write("Hello, with statement!\n")

 

Day 6: 바이너리 파일 처리

  • 강의 내용:
    • 바이너리 파일의 개념
      • 텍스트 파일 vs 바이너리 파일
    • 바이너리 파일 읽기와 쓰기
      • 바이너리 모드 ('rb', 'wb')
  • 실습:
    • 바이너리 파일 읽기와 쓰기 예제 작성
# 바이너리 파일 쓰기 예제
with open("example.bin", "wb") as file:
    data = b'\x00\x01\x02\x03\x04'
    file.write(data)

# 바이너리 파일 읽기 예제
with open("example.bin", "rb") as file:
    data = file.read()
    print(data)  # b'\x00\x01\x02\x03\x04'

 

Day 7: 파일 입출력 종합 연습 및 프로젝트

  • 강의 내용:
    • 파일 입출력 종합 연습 문제 풀이
      • 다양한 파일 입출력 문제
      • Q&A 세션
    • 미니 프로젝트
      • 주제 선정 및 프로그램 설계
      • 파일 입출력을 활용한 프로그램 구현 및 테스트
  • 실습:
    • 종합 연습 문제 풀기
    • 미니 프로젝트 작성 및 발표
# 연습 문제 1: 파일에서 각 줄을 읽어 역순으로 출력하는 함수 작성
def reverse_lines(file_path):
    with open(file_path, "r") as file:
        lines = file.readlines()
    for line in reversed(lines):
        print(line.strip())

reverse_lines("example.txt")

# 연습 문제 2: 두 개의 파일을 읽어 합쳐 새로운 파일에 쓰는 함수 작성
def merge_files(file1_path, file2_path, output_path):
    with open(file1_path, "r") as file1, open(file2_path, "r") as file2, open(output_path, "w") as output_file:
        content1 = file1.read()
        content2 = file2.read()
        output_file.write(content1 + content2)

merge_files("example1.txt", "example2.txt", "merged.txt")

# 미니 프로젝트 예제: 로그 파일 분석 프로그램
def analyze_log(file_path):
    with open(file_path, "r") as file:
        lines = file.readlines()

    error_count = 0
    warning_count = 0

    for line in lines:
        if "ERROR" in line:
            error_count += 1
        elif "WARNING" in line:
            warning_count += 1

    print(f"Errors: {error_count}")
    print(f"Warnings: {warning_count}")

analyze_log("logfile.txt")

 

이 강의는 파이썬의 파일 입출력을 익히는 것을 목표로 하며, 각 강의는 이론과 실습을 포함합니다. 다음 주차에 대한 상세 강의를 원하시면 말씀해 주세요!

 

반응형

'-----ETC2----- > Python' 카테고리의 다른 글

[Python] Week 15: 모듈  (0) 2024.06.01
[Python] Week 14: 예외 처리  (0) 2024.06.01
[Python] Week 12: 문자열 - 정규표현식  (0) 2024.06.01
[Python] Week 11: 문자열 조작  (0) 2024.06.01
[Python] Week 10: 집합  (0) 2024.06.01