做為程序員,在日常的coding中,我們會(huì)不是地保持一些code changes。作為中間版本,以備后用;或者發(fā)給別人review。我通常都是把這樣的code changes打包成一個(gè)zip文件,集中管理,以備參考。修改之前的文件放在一個(gè)old文件夾中,修改之后的文件放在new 文件夾中。
但我要參考這樣的一個(gè)code changes時(shí),我會(huì)unzip,打開merger(一個(gè)文件比較器),輸入new和old文件夾的路徑。如果你經(jīng)常run 這個(gè)workflow,一定會(huì)覺得比較煩,特別是選擇new和old的路徑。何不開發(fā)一個(gè)腳本自動(dòng)化這些步驟呢?
2 Solution
很多人會(huì)想到用BAT,我以前也用BAT寫過類似的Tool。但是想到在BAT中操作字符串和調(diào)試BAT的難度,我還是決定用選擇另外一種語(yǔ)言。
之前就在學(xué)Python,多少有點(diǎn)懂,就用Python來(lái)練練手吧。最終代碼如下:
# -*- coding:utf-8 -*- ''' Created on 2011-7-6 @author: Jalen ''' import os import os.path import sys import subprocess if not os.path.exists('c:\\temp'): os.mkdir('c:\\temp') zipFile = sys.argv[1] APPS = os.environ.get("APPS") name = zipFile.split("\\")[-1] FolderName = name.split(".")[0] outputFolder = "c:\\temp\\" + FolderName #Unzip the package os.system(APPS + "\\FileReaderCreater\\7-Zip\\7z" + " x " + zipFile + " -y -o" + outputFolder) #Call the merger subFolder = os.listdir(outputFolder)[0] newFolder = outputFolder + "\\" + subFolder + "\\new" oldFolder = outputFolder + "\\" + subFolder + "\\old" os.system("C:\PROGRA~2\Araxis\ARAXIS~1.5\Merge " + oldFolder + " " + newFolder)