Table of Contents
1 What is the problem?
做为程序员,在日常的coding中,我们会不是地保持一些code changes。作为中间版本,以备后用;或者发给别人review。我通常都是把这样的code changes打包成一个zip文件,集中管理,以备参考。修改之前的文件放在一个old文件夹中,修改之后的文件放在new 文件夹中。
但我要参考这样的一个code changes时,我会unzip,打开merger(一个文件比较器),输入new和old文件夹的路径。如果你经常run 这个workflow,一定会觉得比较烦,特别是选择new和old的路径。何不开发一个脚本自动化这些步骤呢?
2 Solution
很多人会想到用BAT,我以前也用BAT写过类似的Tool。但是想到在BAT中操作字符串和调试BAT的难度,我还是决定用选择另外一种语言。
之前就在学Python,多少有点懂,就用Python来练练手吧。最终代码如下:
# -*- 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)
Date: 2011-07-31 22:26:32
HTML generated by org-mode 6.33x in emacs 23