TITEDIOS 편한 코딩

Python 기초강의: #18 파일 처리(1) - 파일 읽기와 쓰기 본문

파이썬

Python 기초강의: #18 파일 처리(1) - 파일 읽기와 쓰기

TitediosKW 2024. 7. 10. 19:00
반응형


파이썬에서는 파일을 쉽게 읽고 쓸 수 있는 다양한 방법을 제공합니다. 파일 처리는 데이터를 저장하고 읽어오는 중요한 작업이며, 파이썬의 강력한 내장 함수들을 사용하면 매우 간단하게 처리할 수 있습니다. 이번 포스팅에서는 파이썬에서 파일을 다루는 기본 방법부터 실용적인 예제까지 알아보겠습니다.

파일을 읽고 쓰는 것은 중요한 작업 중 하나이므로 꼭 손으로 익혀주시면 좋겠습니다.

1. 파일 열기

파일을 열기 위해서는 open() 함수를 사용합니다. 이 함수는 파일을 열고 파일 객체를 반환합니다. open() 함수는 파일 이름모드, 두 개의 인자를 받습니다.

파일 모드는 다음과 같습니다.

'r': 읽기 모드 (기본값)
'w': 쓰기 모드 (파일이 존재하면 덮어쓰고, 없으면 새로 생성)
'a': 추가 모드 (파일이 존재하면 끝에 추가, 없으면 새로 생성)
'b': 이진 모드 (바이너리 파일을 다룰 때 사용)
't': 텍스트 모드 (기본값, 텍스트 파일을 다룰 때 사용)

2. 파일 읽기

파일을 읽는 방법에는 여러 가지가 있습니다. read(), readline(), readlines() 메서드를 사용하여 파일의 내용을 읽을 수 있습니다.

전체 파일 읽기

with 문을 사용하면 파일을 열고 닫는 과정을 자동으로 처리해 줍니다. 파일을 모두 읽은 후에는 파일 객체가 자동으로 닫힙니다.

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

한 줄씩 읽기

file을 반복문을 통해 한 줄씩 읽을 수 있습니다. 이 방법은 파일을 한 줄씩 읽으면서 처리할 수 있어 메모리를 절약할 수 있습니다.

with open('example.txt', 'r') as file:
    for line in file:
        print(line, end='')

특정 줄 읽기

readline() 메서드는 파일에서 한 줄씩 읽어들입니다. 위의 사용법과 유사하지만 readline() 함수를 이용하여 한 줄씩 읽는 것입니다.

with open('example.txt', 'r') as file:
    line = file.readline()
    while line:
        print(line, end='')
        line = file.readline()

3. 파일 쓰기

우리가 어떤 정보나 데이터를 프로그램을 통해 처리하게되면 어떤 의미를 가집니다. 이런 의미를 가진 데이터는 파일에 기록할 필요가 있습니다. 이럴 경우 파일에 데이터를 쓰기 위해서는 write() 메서드를 사용합니다.

새 파일에 쓰기

아래 코드는 파일을 쓰기 모드(w)로 열고, 문자열을 파일에 씁니다. 기존 파일이 있다면 덮어쓰게 됩니다.

with open('example.txt', 'w') as file:
    file.write("Hello, World!\n")
    file.write("This is a test file.\n")

파일에 데이터 추가

아래 코드는 파일을 추가 모드(a)로 열고, 파일 끝에 새로운 데이터를 추가합니다.

with open('example.txt', 'a') as file:
    file.write("Appending a new line.\n")


파일을 열 때 모드의 설정을 통해 파일에 덮어쓰기 또는 추가하여 쓰기가 되므로 목적에 맞게 적절한 모드를 선택하셔야 합니다.

4. 파일 닫기

파일을 다 사용한 후에는 close() 메서드를 호출하여 파일을 닫아야 합니다. 실수로 닫지 않으면 메모리가 부족해지거나 알 수 없는 문제가 발생할 수 있습니다. 이런 실수를 미연에 방지하기 위해서 with 문을 사용하면 이 과정을 자동으로 처리할 수 있습니다.

실무에서는 파일은 단순하게 open() 함수로만 여는 경우는 거의 없고 필수적으로 with 문을 사용하여 문제가 발생하지 않도록 합니다.

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


with 문을 사용하면 다음과 같이 간단해집니다.

with open('example.txt', 'r') as file:
    content = file.read()

5. 파일 처리 실습 예제

다음은 간단한 예제를 통해 파일 처리의 기본적인 흐름을 이해해 보겠습니다.

예제 1: 파일 읽기와 쓰기

example.txt라는 파일을 만들고 그 텍스트 파일에 문자열을 작성하고자 하는 경우입니다. 문자열 작성 후 파일이 올바르게 작성되어 있는지 확인하는 코드까지 작성했습니다.

# example.txt 파일에 데이터 쓰기
with open('example.txt', 'w') as file:
    file.write("Hello, World!\n")
    file.write("This is a test file.\n")

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

예제 2: 파일에서 특정 단어 찾기

어떤 파일에서 특정 패턴을 찾고 싶은 것은 흔히 있는 경우입니다. 이럴 경우에 아래와 같은 예제를 이용할 수 있습니다. 아래 예제 코드는 파일에서 'test'라는 단어가 포함된 줄을 찾아 출력합니다.

with open('example.txt', 'r') as file:
    for line in file:
        if 'test' in line:
            print(line, end='')

결론

파이썬에서 파일 처리는 매우 직관적이고 간단합니다. open() 함수를 사용하여 파일을 열고, read(), write() 등의 메서드를 사용하여 파일을 읽고 쓸 수 있습니다. with 문을 사용하면 파일을 열고 닫는 과정을 자동으로 처리하여 코드의 안정성과 가독성을 높일 수 있습니다. 파일 처리는 데이터 저장과 읽기, 로그 기록, 설정 파일 관리 등 다양한 분야에서 유용하게 사용될 수 있습니다.

여러분은 이제 기본적인 파일 읽고 쓰기를 할 수 있게 되었습니다. 프로그램이 가진 데이터나 외부데이터를 활용하는 기반이 마련된 셈입니다. 앞으로도 파이썬을 활용하여 즐거운 프로그래밍 되시길 바랍니다.

감사합니다!

반응형