[파이썬] 파이썬 2와 파이썬 3의 표준 입출력 및 파일 처리 차이

파이썬 2와 파이썬 3는 표준 입출력 및 파일 처리 관련 기능에 다소 차이점이 있습니다. 이번 블로그 포스트에서는 이러한 차이점을 알아보고 예시 코드를 통해 실제로 어떻게 다른지 살펴보겠습니다.

표준 입출력의 차이

파이썬 2에서는 raw_input()을 사용하여 사용자로부터 입력을 받았습니다. 하지만 파이썬 3에서는 input()을 사용합니다. 이에 따라 파이썬 2에서 작성된 코드를 파이썬 3에서 실행할 때는 raw_input()input()으로 변경해야 합니다.

# 파이썬 2
name = raw_input("이름을 입력하세요: ")
print "안녕하세요, " + name + "님!"

# 파이썬 3
name = input("이름을 입력하세요: ")
print("안녕하세요, " + name + "님!")

파일 처리의 차이

파이썬 2에서는 파일을 다룰 때 open() 함수를 사용하고, 데이터를 읽거나 쓸 때는 read(), write() 메서드를 사용했습니다. 하지만 파이썬 3에서는 open() 함수의 인코딩 매개변수를 명시해야 합니다. 또한, read()write() 메서드의 반환 값이 문자열(str)이 아닌 바이트(bytes) 형식입니다.

# 파이썬 2
file = open("data.txt", "r")
content = file.read()
print content

# 파이썬 3
file = open("data.txt", "r", encoding="utf-8")
content = file.read()
print(content)

파이썬 3에서는 텍스트 파일을 처리할 때 인코딩을 명시하는 것이 중요합니다. 위의 예시에서는 UTF-8 인코딩을 사용하였습니다.

예외 처리의 차이

파이썬 2와 3 모두 예외 처리를 지원하지만, 문법적인 차이가 있습니다.

예를 들어, 파이썬 2에서는 예외 발생 시 as 키워드를 사용하여 예외 객체를 변수에 할당할 수 있습니다.

# 파이썬 2
try:
    # 예외가 발생할 수 있는 코드
except Exception as e:
    # 예외 처리 코드

하지만 파이썬 3에서는 as 키워드 대신 as 키워드를 사용해야 합니다.

# 파이썬 3
try:
    # 예외가 발생할 수 있는 코드
except Exception as e:
    # 예외 처리 코드

결론

파이썬 2와 파이썬 3의 표준 입출력 및 파일 처리에는 다소 차이가 있습니다. 이러한 차이를 고려하여 코드를 작성하거나, 파이썬 2에서 작성된 코드를 파이썬 3에서 실행할 때 수정을 해야 합니다. 추가로, 예외 처리 문법도 파이썬 버전에 따라 다르므로 주의가 필요합니다.

따라서 파이썬 2와 3를 모두 지원해야 하는 프로젝트를 진행할 때는 이러한 차이점을 이해하고 코드를 작성해야 한다는 점을 명심해야 합니다.