수색…


통사론

  • $ 2to3 [-options] path / to / file.py

매개 변수

매개 변수 기술
filename / directory_name 2to3은 인수로 변환 될 파일 또는 디렉토리 목록을 허용합니다. 디렉토리는 파이썬 소스에 대해 재귀 적으로 순회됩니다.
선택권 옵션 설명
-f FIX, --fix = FIX 적용 할 변환을 지정하십시오. 기본값 : all. --list-fixes 사용하여 사용 가능한 변환 나열
-j PROCESSES, --processes = PROCESSES 2to3 동시 실행
-x NOFIX, --nofix = NOFIX 변형 제외
-l, --list-fixes 사용 가능한 변환 목록
-p, --print-function print() 가 함수로 간주되도록 문법을 변경하십시오.
-v, --verbose 더 자세한 출력
--no-diffs 리팩터링의 diff를 출력하지 않습니다.
-w 수정 된 파일 다시 쓰기
-n, --nobackups 수정 된 파일의 백업을 만들지 마십시오.
-o OUTPUT_DIR, --output-dir = OUTPUT_DIR 입력 파일을 겹쳐 쓰는 대신 출력 파일을이 디렉토리에 두십시오. 입력 파일이 수정되지 않으면 백업 파일이 필요하지 않으므로 -n 플래그가 필요합니다.
-W, - 쓰기 - 변경되지 않은 파일들 변경 사항이 없어도 출력 파일을 작성하십시오. -o 와 함께 사용하면 완전한 소스 트리가 번역되고 복사됩니다. Implies -w .
--add-suffix = ADD_SUFFIX 모든 출력 파일 이름에 추가 할 문자열을 지정하십시오. 비어 있지 않으면 -n 이 필요합니다. 예 : --add-suffix='3'.py3 파일을 생성합니다.

비고

2to3 도구는 Python 2.x로 작성된 코드를 Python 3.x 코드로 변환하는 데 사용되는 Python 프로그램입니다. 이 도구는 Python 2.x 소스 코드를 읽고 일련의 수정 프로그램을 적용하여 유효한 Python 3.x 코드로 변환합니다.

2to3 도구는 표준 라이브러리에서 거의 모든 코드를 처리 할 수있는 풍부한 픽스쳐 세트를 포함하는 lib2to3으로 제공됩니다. lib2to3은 일반 라이브러리이기 때문에 2to3에 대한 고유 한 픽서를 작성할 수 있습니다.

기본 사용법

다음 Python2.x 코드를 고려하십시오. 파일을 example.py 로 저장합니다.

Python 2.x 2.0
def greet(name):
    print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)

위의 파일에는 몇 가지 호환되지 않는 행이 있습니다. raw_input() 메소드는 Python 3.x에서 input() 으로 대체되었으며 print 는 더 이상 명령문이 아니라 함수입니다. 이 코드는 2to3 도구를 사용하여 Python 3.x 코드로 변환 할 수 있습니다.

유닉스

$ 2to3 example.py

Windows

> path/to/2to3.py example.py

위의 코드를 실행하면 아래와 같이 원본 소스 파일과의 차이가 출력됩니다.

RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored example.py
--- example.py    (original)
+++ example.py    (refactored)
@@ -1,5 +1,5 @@
 def greet(name):
-    print "Hello, {0}!".format(name)
-print "What's your name?"
-name = raw_input()
+    print("Hello, {0}!".format(name))
+print("What's your name?")
+name = input()
 greet(name)
RefactoringTool: Files that need to be modified:
RefactoringTool: example.py

수정 사항은 -w 플래그를 사용하여 소스 파일에 다시 기록 될 수 있습니다. -n 플래그를 지정하지 않으면 example.py.bak 라는 원본 파일의 백업이 작성됩니다.

유닉스

$ 2to3 -w example.py

Windows

> path/to/2to3.py -w example.py

이제 example.py 파일이 Python 2.x에서 Python 3.x 코드로 변환되었습니다.

완료되면 example.py 는 다음과 같은 유효한 Python3.x 코드를 포함하게됩니다.

Python 3.x 3.0
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow