2to3 和 six 等工具可以幫助大家把代碼輕松地適配到python3及其后續(xù)版本中
使用2to3
2to3 通常會(huì)作為腳本和 Python 解釋器一起安裝,你可以在 Python 根目錄的 Tools/scripts 文件夾下找到它灸叼。
2to3 的基本調(diào)用參數(shù)是一個(gè)需要轉(zhuǎn)換的文件或目錄列表印叁。對(duì)于目錄,會(huì)遞歸地尋找其中的 Python 源碼榨汤。
這里有一個(gè) Python 2.x 的源碼文件蠕搜,example.py:
def greet(name):
print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)
它可以在命令行中使用 2to3 轉(zhuǎn)換成 Python 3.x 版本的代碼:
$ 2to3 example.py
這個(gè)命令會(huì)打印出和源文件的區(qū)別。通過(guò)傳入 -w 參數(shù)收壕,2to3 也可以把需要的修改寫(xiě)回到原文件中(除非傳入了 -n 參數(shù)妓灌,否則會(huì)為原始文件創(chuàng)建一個(gè)副本):
$ 2to3 -w example.py
在轉(zhuǎn)換完成后,example.py 看起來(lái)像是這樣:
def greet(name):
print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
注釋和縮進(jìn)都會(huì)在轉(zhuǎn)換過(guò)程中保持不變蜜宪。
更多詳細(xì)用法可以參考2to3文檔