일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Baekjoon
- ChatGPT
- gs25
- 편스토랑 우승상품
- dacon
- hackerrank
- 파이썬
- 금융문자분석경진대회
- PYTHON
- SW Expert Academy
- Git
- programmers
- Real or Not? NLP with Disaster Tweets
- AI 경진대회
- ubuntu
- 편스토랑
- 데이콘
- leetcode
- 코로나19
- 자연어처리
- 프로그래머스
- github
- 캐치카페
- Kaggle
- Docker
- 프로그래머스 파이썬
- 더현대서울 맛집
- 백준
- 맥북
- 우분투
- Today
- Total
솜씨좋은장씨
[Python] 2to3 를 통해 Python 2로 작성된 코드를 Python3로 쉽게 바꾸어보기! 본문
2020년 1월 1일, Python2.7 버전의 공식 지원이 종료되었습니다.
공식지원이 종료가 되어도 Python 2 버전으로 작성된 코드가 실행이되지 않거나 하지는 않지만
추후 Python2에서 보안에 대한 문제가 생기거나 할 시
추가적으로 그부분에 대해 추가적으로 업데이트를 지원받기 어려운 부분도 있을 수도 있고
코딩을하면서 라이브러리를 사용하려고 할 때 Python2 를 지원하지 않아 사용할 수 없을 수도 있습니다.
이에 Python3를 설치하면 Python2로 작성된 코드를 Python3로 바꾸어주는 기본 라이브러리를 제공하고 있습니다.
그것이 바로 2to3입니다.
자세한 내용은 위의 링크에서 확인이 가능합니다.
위의 링크에 나온 샘플 코드를 직접 실행해보았습니다.
2to3 사용해보기
먼저 vi 편집기와 Python2를 활용하여
이름을 하나 입력 받고 입력 받은 이름 앞에 Hello, 를 붙여 출력하도록 하는 샘플 코드를 하나 작성해보았습니다.
vi 2to3_example.py
def greet(name):
print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)
python2 2to3_example.py
이상없이 잘 실행되는 것을 확인하였다면 이제 2to3를 활용하여 Python3 로 코드를 바꾸어 보겠습니다.
(여기서 코드 실행 시 python2로 실행한 이유는 python으로 실행시 기본적으로 실행되는 버전이 Python3여서
Python2버전으로 실행하기 위해서 입니다.)
2to3 2to3_example.py
위처럼 2to3 다음에 Python3로 변경을 희망하는 Python2의 코드 이름을 입력하게되면
현재의 Python2 코드에서 어떤 부분이 어떻게 변경해야하는지 알려줍니다.
cat 2to3_example.py
cat 명령어로 내용이 바뀌었는지 확인해보면 바뀌지 않은 것을 볼 수 있습니다.
이 방법에서는 어떤 부분을 어떻게 바꾸어야하는지만 보여주고 바로 바뀌지는 않습니다.
만약 명령어를 통해 바로 Python2 코드를 Python3로 바꾸고 싶다면
2to3 -w 2to3_example.py
2to3뒤에 -w를 붙여주게되면 추가로 수정없이 바로 할 수 있습니다.
cat 2to3_example.py
다시 cat 명령어를 통해 확인해보면 이번에는 Python3 코드로 변경된 것을 확인할 수 있습니다.
python 2to3_example.py
제대로 실행되는지 확인해보면 이상없이 잘 실행되는 것을 확인할 수 있습니다.
이렇게 기본적으로 제공되는 라이브러리를 통해 쉽게 Python2코드를 Python3로 바꿀 수 있었습니다.
다만, 항상 이 방법을 사용하여 코드를 바꾸는 것은 추천하지 않는다고 합니다.
2to3 명령어를 통해 어떤 부분을 어떻게 바꿀지 확인하면서 차근차근 하나씩 바꾸어 나가는 것이 좋을 것 같습니다.
추가적인 기능 및 설명은 공식 문서를 참고 바랍니다!
읽어주셔서 감사합니다.
'Programming > Python' 카테고리의 다른 글
[Python] Sphinx 를 활용하여 Python 문서화해보기! (0) | 2020.04.02 |
---|---|
[Python] List Comprehension과 리스트를 다루는 여러가지 방법들! (0) | 2020.04.02 |
[Python] flask와 mongoDB를 활용하여 REST API 만들기 1 - CSV 데이터를 불러와 mongoDB에 데이터 추가하기 (0) | 2020.03.29 |
[Python] 두 개의 문자열 서로 바꾸기 (0) | 2020.03.28 |
[Python] 마스크 재고 API와 텔레그램으로 나만의 마스크 재고 알리미를 만들어보자! (1) | 2020.03.15 |