Python2和Python3在語法和模塊的使用上會有一些差別(這里就不詳細講解了)牺陶,推薦新手直接使用python3進行代碼編寫凡蜻。實際工作中有很多運維或者測試腳本還在使用python2持續(xù)運行,當我們遇到批量工作需要把python3轉(zhuǎn)化成python2(或者把python2轉(zhuǎn)化成python3)的時候筹淫,我們該如何處理呢站辉?是不是需要一行一行地手動去修改代碼呢?答案是否定的损姜,本文就來介紹一下具體的實施方案饰剥。
python 2轉(zhuǎn)python 3
Python3.7(自帶轉(zhuǎn)化工具C:\Python37\Tools\scripts\2to3)我們可以直接在cmd命令行中使用它:
python 2to3.py -w D:/test.py #python2的test.py 轉(zhuǎn)換為python3
test.py文件很簡單就是打印語句
print "hello.py"
C:\Python37\Tools\scripts>python 2to3.py -w D:/test.py
RefactoringTool: Skipping optional fixer: buffer
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: set_literal
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored D:/test.py
--- D:/test.py? (original)
+++ D:/test.py? (refactored)
@@ -1 +1 @@
-print "hello.py"
+print("hello.py")
RefactoringTool: Files that were modified:
RefactoringTool: D:/test.py
執(zhí)行后,check test.py,轉(zhuǎn)化后的代碼如下:
print("hello.py")
參數(shù) -w 會將新文件覆蓋舊文件摧阅,不加 -w 就只在控制臺窗口顯示修改的地方(而文件里的內(nèi)容不會被修改)汰蓉;文件默認會備份成 .bak(例如test.py.bak) ,如果不需要生成bak文件棒卷,則加參數(shù) -n即可顾孽。
如果需要轉(zhuǎn)換某個文件夾下的所有文件,例如D盤test文件夾下的所有文件娇跟,在命令行里輸入:
python 2to3.py -w D:/test/
python 3轉(zhuǎn)python 2
先安裝一個Python包:lib3to2? 岩齿,pip install 3to2
安裝成功后,會在目錄C:\Python37\Scripts 中生成一個文件叫3to2
對需要轉(zhuǎn)換的某個python文件苞俘,例如D盤根目錄下的test.py盹沈,在命令行里輸入:
python 3to2 -w D:/test.py? #python3的test.py 轉(zhuǎn)換為python2
如果需要轉(zhuǎn)換某個文件夾下的所有文件,例如D盤test文件夾下的所有文件吃谣,在命令行里輸入:
python 3to2 -w D:/test/
大家可以發(fā)現(xiàn)python 3轉(zhuǎn)python 2的方法與python 2轉(zhuǎn)python 3是極其相似的乞封!