#!/usr/local/bin/python # -*- coding: UTF-8 -*- # Copyright 2005, Søren Thing Pedersen stp@things.dk, Licensed under LGPL import os, sys, zipfile, zlib, csv SentenceExceptList = 'SentenceExceptList.csv' WordExceptList = 'WordExceptList.csv' DocumentList = 'DocumentList.csv' manifest = """ """ fileheader = """ """ filefooter = '' class calc(csv.Dialect): delimiter = ',' quotechar = '"' doublequote = False quoting = csv.QUOTE_ALL escapechar = '\\' skipinitialspace = True lineterminator = '\r\n' def zip_dir_into_file(dir, file): zfobj = zipfile.ZipFile(file, 'w', zipfile.ZIP_DEFLATED) for root, dirs, files in os.walk(dir): for thisfile in files: # print os.path.join(root,thisfile) zfobj.write(os.path.join(root, thisfile), os.path.join(root, thisfile).replace(dir, "")[1:]) zfobj.close() if len(sys.argv) != 2: print 'Usage: '+sys.argv[0]+' destinationfile' else: destinationfile = sys.argv[1] tempdir = destinationfile+'_tmp' if os.path.exists(SentenceExceptList) and os.path.exists(WordExceptList) and os.path.exists(DocumentList): if not (os.path.exists(tempdir)): os.mkdir(tempdir, 0777) if not (os.path.exists(tempdir+'/Meta-inf/')): os.mkdir(tempdir+'/Meta-inf/', 0777) manifestfile = open(os.path.join(tempdir+'/Meta-inf/', 'manifest.xml'), 'wb') manifestfile.write(manifest) manifestfile.close() mimetypefile = open(os.path.join(tempdir, 'mimetype'), 'wb') mimetypefile.write('') mimetypefile.close() DocumentListfile = open(os.path.join(tempdir, 'DocumentList.xml'), 'wb') DocumentListfile.write(fileheader+"\n") csvreader = csv.reader(file(DocumentList), calc) for row in csvreader: line = ' '+"\n"; DocumentListfile.write(line) DocumentListfile.write(filefooter+"\n") DocumentListfile.close() SentenceExceptListfile = open(os.path.join(tempdir, 'SentenceExceptList.xml'), 'wb') SentenceExceptListfile.write(fileheader+"\n") csvreader = csv.reader(file(SentenceExceptList), calc) for row in csvreader: line = ' '+"\n"; SentenceExceptListfile.write(line) SentenceExceptListfile.write(filefooter+"\n") SentenceExceptListfile.close() WordExceptListfile = open(os.path.join(tempdir, 'WordExceptList.xml'), 'wb') WordExceptListfile.write(fileheader+"\n") csvreader = csv.reader(file(WordExceptList), calc) for row in csvreader: line = ' '+"\n"; WordExceptListfile.write(line) WordExceptListfile.write(filefooter+"\n") WordExceptListfile.close() zip_dir_into_file(tempdir, destinationfile) else: print "SentenceExceptList.csv, WordExceptList.csv or DocumentList.csv missing!"