6장: 파일 입출력

파이썬에서는 파일을 읽고 쓰는 작업을 쉽게 수행할 수 있습니다. 이 장에서는 파일을 여는 방법, 파일에 데이터를 읽고 쓰는 방법, 그리고 파일을 닫는 방법에 대해 알아보겠습니다.


#### 6.1 파일 열기


파일을 열기 위해서는 `open()` 함수를 사용합니다. 이 함수는 파일 이름과 파일 모드를 인수로 받습니다. 파일 모드는 파일을 열 때의 작업을 지정하며, 주요 파일 모드는 다음과 같습니다:

- `'r'`: 읽기 모드 (기본값)

- `'w'`: 쓰기 모드 (파일이 존재하면 내용을 덮어씀)

- `'a'`: 추가 모드 (파일이 존재하면 끝에 내용을 추가)

- `'b'`: 바이너리 모드


```python

# 파일 열기 예제

file = open('example.txt', 'r')

```


#### 6.2 파일 닫기


파일을 다 사용한 후에는 `close()` 메서드를 호출하여 파일을 닫아야 합니다. 파일을 닫지 않으면 데이터 손실이나 파일 손상이 발생할 수 있습니다.


```python

# 파일 닫기 예제

file.close()

```


#### 6.3 파일 읽기


파일에서 데이터를 읽는 방법에는 여러 가지가 있습니다. `read()` 메서드는 파일의 전체 내용을 문자열로 반환합니다. `readline()` 메서드는 파일에서 한 줄을 읽고, `readlines()` 메서드는 파일의 모든 줄을 읽어 리스트로 반환합니다.


```python

# 파일 읽기 예제

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

    content = file.read()

    print(content)


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

    line = file.readline()

    while line:

        print(line, end='')

        line = file.readline()


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

    lines = file.readlines()

    for line in lines:

        print(line, end='')

```


#### 6.4 파일 쓰기


파일에 데이터를 쓰기 위해서는 `write()` 메서드를 사용합니다. `w` 모드로 파일을 열면 기존 파일 내용을 덮어쓰게 되고, `a` 모드로 파일을 열면 기존 파일 내용 뒤에 데이터를 추가합니다.


```python

# 파일 쓰기 예제

with open('example.txt', 'w') as file:

    file.write('Hello, Python!\n')


with open('example.txt', 'a') as file:

    file.write('Appending a new line.\n')

```


#### 6.5 파일 예외 처리


파일 작업 중 예외가 발생할 수 있으므로, 예외 처리를 통해 오류를 방지할 수 있습니다. 파일 작업을 할 때 `try...except` 구문을 사용하는 것이 좋습니다.


```python

# 파일 예외 처리 예제

try:

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

        content = file.read()

        print(content)

except FileNotFoundError:

    print("파일을 찾을 수 없습니다.")

except IOError:

    print("파일을 읽는 중 오류가 발생했습니다.")

```


#### 6.6 바이너리 파일 읽기 및 쓰기


바이너리 파일을 읽고 쓰기 위해서는 파일 모드에 `'b'`를 추가해야 합니다. 예를 들어, `'rb'`는 바이너리 읽기 모드, `'wb'`는 바이너리 쓰기 모드입니다.


```python

# 바이너리 파일 읽기

with open('example.bin', 'rb') as file:

    binary_content = file.read()

    print(binary_content)


# 바이너리 파일 쓰기

with open('example.bin', 'wb') as file:

    file.write(b'\x00\xFF\x00\xFF')

```


#### 6.7 CSV 파일 다루기


파이썬의 `csv` 모듈을 사용하면 CSV 파일을 쉽게 읽고 쓸 수 있습니다. `csv.reader`와 `csv.writer`를 사용하여 CSV 파일을 처리할 수 있습니다.


```python

import csv


# CSV 파일 읽기

with open('example.csv', 'r', newline='') as file:

    reader = csv.reader(file)

    for row in reader:

        print(row)


# CSV 파일 쓰기

with open('example.csv', 'w', newline='') as file:

    writer = csv.writer(file)

    writer.writerow(['name', 'age', 'city'])

    writer.writerow(['Alice', '30', 'New York'])

    writer.writerow(['Bob', '25', 'Los Angeles'])

```


이상으로, 파이썬에서 파일을 읽고 쓰는 방법에 대해 알아보았습니다. 다음 장에서는 예외 처리와 관련된 내용을 더 자세히 알아보겠습니다. 질문이나 요청사항이 있으시면 댓글로 남겨주세요!


---


이 글의 내용은 GoalKicker.com의 Python Notes for Professionals 책을 참조하였습니다.

댓글