코딩교육/Python 초등교육에서 전문가까지

1단계 : 9. 함수와 모듈 (feat. 파일 경로와 모드 이해)

제리토리 2025. 2. 4. 09:00
728x90
반응형

 

Python에서 파일 작업을 수행할 때 파일 경로파일 모드를 올바르게 이해하는 것이 중요합니다. 파일 경로는 파일의 위치를 지정하며, 파일 모드는 파일을 읽거나 쓰기 위해 열 때 수행할 작업 방식을 정의합니다. 이 장에서는 파일 경로의 종류와 사용법, 파일 모드의 종류와 특징을 상세히 설명합니다.

 

 

1. 파일 경로 이해

 

 

파일 경로는 파일이 저장된 위치를 지정하는 문자열입니다. Python에서는 절대 경로상대 경로를 사용하여 파일을 지정할 수 있습니다.

 

   ㉮ 절대 경로

 

      절대 경로(Absolute Path)는 파일의 전체 경로를 지정합니다.

 

      운영 체제에 따라 경로 표기법이 다릅니다:

         • Windows: C:\Users\username\Documents\example.txt

         • Mac/Linux: /home/username/Documents/example.txt

 

      예제

file = open("C:\\Users\\username\\Documents\\example.txt", "r")
content = file.read()
print(content)
file.close()

 

 

   ㉯ 상대 경로

 

      상대 경로(Relative Path)는 현재 작업 디렉터리를 기준으로 파일의 위치를 지정합니다.

표기 설명
./example.txt 현재 디렉터리의 example.txt 파일.
../example.txt 상위 디렉터리의 example.txt 파일.

 

      예제

file = open("./example.txt", "r")  # 현재 디렉터리에 있는 파일 읽기
content = file.read()
print(content)
file.close()

 

 

   ㉰ 경로 확인하기

 

      os 모듈을 사용하여 현재 작업 디렉터리를 확인하거나 경로를 조작할 수 있습니다.

 

      현재 작업 디렉터리 확인

import os

current_dir = os.getcwd()
print(f"현재 작업 디렉터리: {current_dir}")

 

 

 

2. 파일 모드 이해

 

 

파일 작업 시 open() 함수의 모드(mode)는 파일을 읽기, 쓰기, 추가 또는 새로 만들지 여부를 결정합니다.

 

   ㉮ 주요 파일 모드

모드 설명 작업
"r" 읽기 모드 (기본값). 파일을 읽기 전용으로 엽니다. 파일이 없으면 오류 발생
"w" 쓰기 모드. 파일을 새로 생성하거나 덮어씁니다. 기존 파일 내용 삭제
"a" 추가 모드. 파일 끝에 내용을 추가합니다. 파일이 없으면 새로 생성
"x" 새 파일 생성 모드. 파일을 새로 생성합니다. 파일이 이미 존재하면 오류 발생
"r+" 읽기 및 쓰기 모드. 파일을 읽고 쓸 수 있습니다. 파일이 없으면 오류 발생.
"w+" 쓰기 및 읽기 모드. 파일을 새로 생성하거나 덮어 씁니다. 기존 파일 내용 삭제

 

 

   ㉯ 텍스트 모드와 바이너리 모드

 

      파일은 텍스트 모드(기본값)와 바이너리 모드로 열 수 있습니다.

접미사 설명 예제
"t" 텍스트 모드 (기본값). 문자열로 처리 "rt" , "wt"
"b" 바이너리 모드. 바이트 데이터 처리 "rb" , "wb"

 

 

 

3. 파일 경로와 모드 활용 예제

 

 

   ㉮ 절대 경로로 파일 읽기

file = open("C:\\Users\\username\\Documents\\example.txt", "r")
content = file.read()
print(content)
file.close()

 

   ㉯ 상대 경로로 파일 쓰기

file = open("./example.txt", "w")  # 현재 디렉터리
file.write("Python 파일 쓰기 연습.")
file.close()

 

   ㉰ 추가 모드로 파일 수정

file = open("example.txt", "a")  # 기존 파일 내용 유지, 추가 모드
file.write("\n새로운 줄 추가.")
file.close()

 

   ㉱ 새 파일 생성

file = open("new_file.txt", "x")  # 파일이 이미 있으면 오류 발생
file.write("새 파일 생성!")
file.close()

 

   ㉲ 바이너리 모드로 이미지 읽기

with open("image.jpg", "rb") as file:
    data = file.read()
    print(f"이미지 크기: {len(data)} 바이트")

 

 

 

4. 모드 선택 시 주의사항

 

 

  ㉮ 파일 덮어쓰기 주의 ("w", "w+"):

      • 기존 파일 내용이 삭제되므로, 중요한 파일에는 신중히 사용합니다.

 

  ㉯ 파일 없을 때 오류 처리:

      • "r" 모드는 파일이 없을 경우 오류가 발생하므로 사전에 존재 여부를 확인합니다.

 

  ㉰ 경로 구분자:

      • Windows에서는 \\를 사용하거나, os.path.join()을 활용하여 플랫폼 독립적인 코드를 작성합니다.

import os
path = os.path.join("folder", "file.txt")

 

  ㉱ 작업 디렉터리 변경:

      • 작업 디렉터리를 변경하려면 os.chdir()를 사용할 수 있습니다.

os.chdir("C:\\Users\\username\\Documents")

 

 

 

5. 실용적인 활용

 

   ㉮ 사용자 파일 입력 처리

filename = input("파일 이름을 입력하세요: ")
try:
    with open(filename, "r") as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")

 

 

   ㉯ 다중 파일 쓰기

files = ["file1.txt", "file2.txt", "file3.txt"]

for filename in files:
    with open(filename, "w") as file:
        file.write(f"{filename}의 내용입니다.")

 

 

 

6. 요약

 

 

파일 작업에서 파일 경로와 모드를 올바르게 이해하는 것은 데이터의 안정성과 작업의 효율성을 높이는 데 필수적입니다. 경로는 파일의 위치를 지정하며, 모드는 파일 작업의 유형(읽기, 쓰기, 추가 등)을 결정합니다.

 

핵심 정리

 

   ㉮ 파일 경로:

      • 절대 경로와 상대 경로를 지원.

      • os 모듈로 경로 조작 가능.

 

   ㉯ 파일 모드:

      • 읽기("r"), 쓰기("w"), 추가("a"), 새 파일 생성("x") 등 다양한 작업 지원.

      • 텍스트 모드("t")와 바이너리 모드("b") 선택 가능.

 

   ㉰ 활용:

      • 절대 경로는 파일의 고정된 위치 지정.

      • 상대 경로는 유연한 작업 환경 제공.

728x90
반응형