來了個有點複雜沒辦法用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 感覺還是有點大