1. 程式人生 > >用Python寫一個將Python2程式碼轉換成Python3程式碼的批處理工具

用Python寫一個將Python2程式碼轉換成Python3程式碼的批處理工具

之前寫過一篇如何在windows作業系統上給.py檔案新增一個快速處理的右鍵功能的文章:《一鍵將Python2程式碼自動轉化為Python3》,作用就是為了將Python2的檔案升級轉換成Python3的檔案。之後,有朋友問,如果有很多檔案需要轉換,一個個的右鍵轉換還是覺得麻煩!這個問題我非常喜歡,非常符合”程式設計師精神“,哈哈,能簡單的決不搞複雜,能省力就省力!也有朋友提問,這個功能只能在windows上實現,像Ubuntu等Linux作業系統怎麼搞?好吧,既然是研究學習Python語言的,那咱們就用Python寫個程式碼來搞定這些問題,直接上程式碼:
import os


# 定義一個處理方法
def Python2toPython3(dirname, p2to3FileName):
    if os.path.exists(dirname):
        for dirpath, dirnames, filenames in os.walk(dirname):
            for filename in filenames:
                if filename.endswith('.py'):
                    fileFullName = os.path.join(dirpath, filename)
                    print('Processing File:', fileFullName)
                    pycode2to3 = ("python " + p2to3FileName + " -w " +
                                  fileFullName)
                    print((os.popen(pycode2to3, 'r').read()))


# dirname 需要轉換的檔案目錄
dirname = "C:/Users/Administrator/Desktop/test"

# p2to3FileName 本機Python安裝目錄下的2to3.py的路徑,2to3.py是python自帶的工具
p2to3FileName = ("C:/Users/Administrator/AppData/Local/Programs/" +
                 "Python/Python36-32/Tools/scripts/2to3.py")

Python2toPython3(dirname, p2to3FileName)


下圖為測試執行截圖:
程式碼很簡單,就是遍歷給定的目錄,如果是".py"檔案,就呼叫Python自己的2to3.py工具進行處理。這下應該沒問題了吧,^_^。當然,如果有什麼問題,或者有更好的方法,歡迎告之,以共同學習研究。