2020-04-20|閱讀時間 ‧ 約 4 分鐘

Python3批次改檔名

    來了個有點複雜沒辦法用batch檔來處理的批次檔名變更需求

    用 labview大概十幾分鐘可以弄出來, 但執行檔實在太大

    所以改用python處理看看

    IN和T是我們用來紀錄測試通道和測試次數

    新舊命名規則對於IN和T的起點定義剛好相反,使用的碼數也不一致

    必須從原始檔名分別把兩個字串抽取出來做運算變更

    另外還必須額外插入測試站辨別碼

    主要是用os.rename()來進行改檔名

    為了減少程式運作時輸入東西太多,所以直接把程式和改名檔案放一起

    就可以用os.getcwd()取得作業目錄

     

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    import os
    
    files = os.listdir(os.getcwd())     #目前執行檔路徑
    
    stg = input("1 for ATS1 2 for ATS3:") #輸入stage編號
    stg_ind = "-T"+(str(stg).zfill(2))
    
    n=0 
    for i in files:
        oldname=files[n]                #資料夾中檔名的list
        in_index = oldname.find("IN")   #IN indicator字串起點
        test_index = oldname.find("T0") #T indicator字串起點
        if in_index != -1:              #檔名沒有"IN"都不處理
            in_ind_old = oldname[in_index:in_index+4]                   #舊的IN字串
            in_ind = "In"+str(int(oldname[in_index+2:in_index+4])-1)    #新的IN起算點是0
            tmp=oldname.replace(in_ind_old , in_ind+stg_ind)
    
            test_ind_old = oldname[test_index:test_index+4]
            test_ind = "T-"+str(int(oldname[test_index+1:test_index+4])+1).zfill(3) #新的T起算點是1,不足3碼要補0
            tmp=tmp.replace(test_ind_old,test_ind)
            
            newname=tmp.replace("_","-")    #底線改減號
            os.rename(oldname,newname)     #改檔名
            print(oldname,'-->>',newname)
        n+=1
    
    os.system("pause")                      #暫停提示完成
    

     

    用pyinstaller打包成執行檔後變成5.4MB

    pyinstaller -F ./Fname.py
    

    感覺還是有點大

     

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.