본문 바로가기
파이썬 문법

파이썬에서 파일 입출력.

by mdesign 2024. 8. 16.

파이썬에서 파일 입출력은 파일과 데이터를 읽고 쓰는 작업을 수행하는 데 사용됩니다. 파일 입출력 작업은 파일을 열고, 읽고, 쓰고, 닫는 등 여러 작업을 포함합니다. 파이썬에서는 파일 처리를 위한 여러 방법을 제공합니다.

컴퓨터 모니터


1. 파일 열기 (Opening Files)

파일을 열기 위해서는 open() 함수를 사용합니다. open() 함수는 파일의 경로와 파일을 열 때 사용할 모드를 지정합니다.

# 파일 열기
file = open('example.txt', 'r')  # 'r': 읽기 모드


2. 파일 모드 (File Modes)

파일을 열 때 사용할 수 있는 모드는 여러 가지가 있습니다:

'r' 읽기 모드  (파일이 존재해야 함)
'w'  쓰기 모드 (파일이 존재하면 내용을 덮어씀, 존재하지 않으면 새로 생성)
'a' 추가 모드 (파일이 존재하면 내용 뒤에 추가, 존재하지 않으면 새로 생성)
'b' 바이너리 모드 (예: 'rb', 'wb', 'ab' 등)
'x' 배타적 생성 모드 (파일이 존재하면 FileExistsError 발생)

  
3. 파일 읽기 (Reading Files)

파일을 읽는 방법에는 여러 가지가 있습니다.

 

read()

: 파일 전체를 읽어 문자열로 반환합니다.

file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()


readline()

: 파일에서 한 줄을 읽어 반환합니다.

file = open('example.txt', 'r')
line = file.readline()
print(line)
file.close()


readlines()

: 파일의 모든 줄을 읽어 리스트로 반환합니다.

file = open('example.txt', 'r')
lines = file.readlines()
print(lines)
file.close()


4. 파일 쓰기 (Writing to Files)

파일에 데이터를 쓰는 방법입니다.


write()

: 문자열을 파일에 씁니다. 파일이 열릴 때 모드가 'w' 또는 'a'여야 합니다.

file = open('example.txt', 'w')
file.write("Hello, World!\n")
file.write("This is a new line.")
file.close()


writelines()

: 문자열의 리스트를 파일에 씁니다. 각 문자열은 파일의 한 줄로 추가됩니다.

lines = ["First line\n", "Second line\n", "Third line\n"]
file = open('example.txt', 'w')
file.writelines(lines)
file.close()



5. 파일 닫기 (Closing Files)

파일 작업이 끝나면 반드시 파일을 닫아야 합니다. 이는 자원을 해제하고 파일의 변경 사항을 저장합니다.

file = open('example.txt', 'r')
content = file.read()
file.close()


6. 파일 열기와 닫기를 자동으로 처리하기 (Context Manager)

with 문을 사용하면 파일을 열고 자동으로 닫을 수 있습니다. 이는 코드가 간결하고 오류를 줄이는 데 도움을 줍니다.

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
# 파일이 자동으로 닫힘

 

7. 파일 바이너리 모드 (Binary Mode)

파일을 바이너리 모드로 열어 읽거나 쓸 수 있습니다. 이는 텍스트가 아닌 데이터(예: 이미지 파일)를 처리할 때 사용합니다.

# 바이너리 파일 읽기
with open('example.bin', 'rb') as file:
    content = file.read()
    print(content)

# 바이너리 파일 쓰기
with open('example.bin', 'wb') as file:
    file.write(b'\x00\x01\x02\x03')


8. 파일 경로와 이름 (File Paths and Names)

파일 경로를 다루는 데는 os 모듈과 pathlib 모듈이 유용합니다.

os 모듈

import os

# 현재 작업 디렉토리
print(os.getcwd())

# 파일 경로 결합
file_path = os.path.join('folder', 'example.txt')


pathlib 모듈

from pathlib import Path

# 현재 작업 디렉토리
current_path = Path.cwd()
print(current_path)

# 파일 경로 결합
file_path = Path('folder') / 'example.txt'


9. 파일 존재 여부 확인

파일이 존재하는지 확인하려면 os.path.exists() 또는 Path.exists()를 사용할 수 있습니다.

import os

if os.path.exists('example.txt'):
    print("File exists")
else:
    print("File does not exist")

# 또는 pathlib 모듈을 사용할 경우
from pathlib import Path

file_path = Path('example.txt')
if file_path.exists():
    print("File exists")
else:
    print("File does not exist")



이와 같은 파일 입출력 작업은 파일 시스템과 상호작용하여 데이터를 읽고 쓸 수 있는 강력한 도구입니다. 파일을 열고, 읽고, 쓰는 방법을 잘 이해하면 다양한 파일 기반 작업을 효율적으로 수행할 수 있습니다.