使用Python解压,对比文件

 

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)

Author: Jalen Wang <jiayuewang228@gmail.com>

Date: 2011-07-31 22:26:32

HTML generated by org-mode 6.33x in emacs 23

posted on 2011-07-31 22:36  Jalen Wang  阅读(1801)  评论(3编辑  收藏  举报

导航