파이썬 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를 사용한다면, 다른 버전 간에 파일 입출력 차이에 대한 이해는 필수입니다.