我的第一個python程序--給2.x的print代碼加上括號


  最近想學習一門腳本語言,綜合考慮,選擇了python.

  花了幾天時間看完了 簡明 Python 教程 ,想着應該寫點什么東西才好,剛好我使用的是3.x版本,以前好多2.x的代碼都直接報錯,尤其是print語句,手動加()太蛋疼,遂起了寫個自動加()的腳本的心思.

  先是在這里找到了 python 讀取一個目錄下的所有目錄和文件 的代碼,然后寫了了個fixPrint的函數, 在原有代碼的基礎上加上了修復print的功能,不多說了,直接上代碼:

import os
allFileNum = 0
def printPath(level, path):
    global allFileNum
    '''
    打印一個目錄下的所有文件夾和文件
    '''
    # 所有文件夾,第一個字段是次目錄的級別 
    dirList = []
    # 所有文件
    fileList = []  
    # 所有文件 包含路徑
    filePathList = []
    # 返回一個列表,其中包含在目錄條目的名稱(google翻譯)
    files = os.listdir(path)
    # 先添加目錄級別
    dirList.append(str(level))
    for f in files:
        if(os.path.isdir(path + '/' + f)):
            # 排除隱藏文件夾。因為隱藏文件夾過多
            if(f[0] == '.'):
                pass
            else:
                # 添加非隱藏文件夾
                dirList.append(f)
        if(os.path.isfile(path + '/' + f)):
            # 添加文件
            fileList.append(f)
            filePathList.append(path + '/' + f)
    # 當一個標志使用,文件夾列表第一個級別不打印
    i_dl = 0
    for dl in dirList:
        if(i_dl == 0):
            i_dl = i_dl + 1
        else:
            # 打印至控制台,不是第一個的目錄
            print ('-' * (int(dirList[0])), dl)
            # 打印目錄下的所有文件夾和文件,目錄級別+1
            printPath((int(dirList[0]) + 1), path + '/' + dl)
    for fl in fileList:
        # 打印文件
        print ('-' * (int(dirList[0])), fl)
        #fixPrint(fl)
        # 隨便計算一下有多少個文件
        allFileNum = allFileNum + 1
    for fl in filePathList:
       fixPrint(fl)
def fixPrint(path):
    file  = open(path,"r",encoding="utf-8")
    newLines = [];
    all_the_text = file.readlines( )
    for line in all_the_text:
        index = line.find("print")
        #檢查當前行是否有print 同時是否已經有()了
        if(index>=0 and line[index+5:index+8].find('(')==-1):
            #對有print的數據進行處理,
            line = line.replace("print","print (") 
            if(line.find("\n")>0):
                 line =  line.replace("\n"," )" +"\n") 
            else:
                line+=")"
        newLines.append(line)
    file.close()

     #直接覆蓋掉原來的文件 
    newFile = open(path,"w",encoding="utf-8")
    for line in newLines:
      newFile.write(line)
    newFile.close()

if __name__ == '__main__':
    printPath(1, "你的目標文件所在文件夾路徑")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM