2011-09-15 44 views
0

您好我跑了我公司的...Python發佈構建以更改品牌和版本的msi名稱?

工作,目前我使用詞典功能採取的是由建立和重命名的命名規則決定了爲產生了微星的名字構建系統該版本。

def Rename_MSI(dict): 
    global Src_Dir 
    for msi in dict.keys(): 
     if os.path.exists(Src_Dir + "\\" + msi): 
      print "renaming ", msi, "to ", dict[msi] 
      os.rename(Src_Dir + "\\" + msi, Src_Dir + "\\" + dict[msi]) 
     else: 
      print "Rename function failed", msi, "does not exist" 
      sys.exit(3) 

由團隊製作的名字也變得標準化了,所以我相信我可以做一個重命名而不需要維護字典。 微星的名字是這個,因爲它來自於身材: ProductSolution_x64.msi

我需要將品牌添加到開始喜歡這個 Brand_ProductSolution_x64.msi

而且版本是這樣的: Brand_ProductSolution_10_2 _ _ 64的.msi

我想到了這樣的功能,但我不是真的好與切片: STR [1:(STR)-8 LEN]

所以這樣的事情? NEWNAME =%+ STR +%STR [1:LEN(STR)-8]%(品牌,版本)

預先感謝任何幫助

回答

0
import os 

msi = "ProductSolution_x64.msi" 

name,arch = os.path.splitext(msi)[0].split('_')  

newname = "%s_%s_%s_%s.msi" %(brand, name, version, arch) 

應該工作...

+0

那很棒!它的作用就像一種魅力。 – user875531

+0

嘿一個問題編輯。 我不熟悉您正在使用的拆分我看到您使用'_'作爲拆分標識符,但是[0]是什麼? 我想我可以使用同樣的方法,但必須修改該功能的一部分,以使用這個msi的其他集合,這些msi有 Brand_ProductSolution_x64.msi – user875531

+0

[0]表示拆分應用於splitext調用的第一部分(換句話說,沒有擴展名的文件名)。在這種情況下,split將返回三個元素,所以只要說:brand,name,arch = ...其餘與以前相同。 –

相關問題