[파이썬] 파이썬 2와 파이썬 3의 파일 입출력 차이

파이썬 2와 파이썬 3는 각각 다른 버전의 파이썬 인터프리터입니다. 이 두 버전 간에는 몇 가지 중요한 차이점이 있으며, 파일 입출력도 예외는 아닙니다. 이 글에서는 파이썬 2와 3의 파일 입출력 차이를 살펴보겠습니다.

1. 파일 열기

파일을 열 때, 파이썬 2에서는 open() 함수를 사용하고 파이썬 3에서는 open() 함수를 사용합니다.

파이썬 2의 예시:

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

파이썬 3의 예시:

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

2. 파일 모드

파일을 열 때 사용되는 파일 모드에도 일부 차이가 있습니다.

파이썬 2의 예시:

file = open('file.txt', 'w')  # 쓰기 모드로 파일 열기
file = open('file.txt', 'r+')  # 읽기와 쓰기 모드로 파일 열기

파이썬 3의 예시:

file = open('file.txt', 'w', encoding='utf-8')  # 쓰기 모드로 파일 열기
file = open('file.txt', 'r+', encoding='utf-8')  # 읽기와 쓰기 모드로 파일 열기

주목할 점은 파이썬 3에서 파일을 열 때 인코딩을 명시적으로 지정해야 한다는 것입니다.

3. 파일 닫기

파일을 다 사용한 후에는 항상 파일을 닫아야 합니다. 그러나 파이썬 2와 3에서 파일을 닫는 방법이 다릅니다.

파이썬 2의 예시:

file.close()  # 파일 닫기

파이썬 3의 예시:

file.close()  # 파일 닫기

4. 내장 함수 print

파이썬 2에서 print는 문장을 출력하기 위한 문입니다. 하지만 파이썬 3에서는 print() 함수로 변경되어 일반 함수처럼 사용됩니다.

파이썬 2의 예시:

print "Hello, World!"  # 괄호 없이 사용

파이썬 3의 예시:

print("Hello, World!")  # 괄호로 감싸서 사용

5. 파일 읽기/쓰기

파이썬 2와 3에서 파일을 읽거나 쓰는 방법에도 소소한 차이가 있습니다.

파이썬 2의 예시:

file.write("Hello, World!")  # 문자열을 파일에 쓰기
content = file.read()  # 파일에서 내용 읽기

파이썬 3의 예시:

file.write("Hello, World!")  # 문자열을 파일에 쓰기
content = file.read()  # 파일에서 내용 읽기

파이썬 3에서 추가된 파일 처리 메서드 중 일부는 파이썬 2에서는 지원되지 않으며, 일부 파이썬 2 파일 처리 메서드는 파이썬 3에서는 사용되지 않습니다.

파이썬 2와 3 사이에는 파일 입출력을 비롯한 여러 가지 차이점이 있습니다. 이러한 차이를 알고 있다면 파이썬 코드를 작성할 때 버전 간 호환성을 고려하여 더 좋은 코드를 작성할 수 있습니다. 판단한 적 없이 파이썬 2 혹은 3를 사용한다면, 다른 버전 간에 파일 입출력 차이에 대한 이해는 필수입니다.