#!/usr/bin/env python import ogr import gdal import subprocess import sys import tempfile import os, os.path import shutil def shpclip(inshp, clipshp, outshpname): # check folder "output" outdir = "./output" if os.path.exists(outdir): shutil.rmtree(outdir) os.makedirs(outdir) outshp = outdir+'/'+outshpname o = subprocess.check_output(['/usr/bin/ogr2ogr', "-f", "ESRI Shapefile", "-clipsrc", clipshp, outshp, inshp]) print o def unzip(tmpDir, inzip): subprocess.check_call(['/usr/bin/7z', 'x', '-o%s' % tmpDir, inzip], shell=False) files = [os.path.join(tmpDir,f) for f in os.listdir(tmpDir) ] for f in files: if f.endswith(".shp"): return f if __name__ == '__main__': # clip.py inshp.zip_clipshp.zip outshpname tmpDir = tempfile.mkdtemp() inshp = unzip(tmpDir, sys.argv[1]) tmpDir2 = tempfile.mkdtemp() clipshp = unzip(tmpDir2, sys.argv[2]) shpclip(inshp, clipshp, sys.argv[3] ) shutil.rmtree(tmpDir) shutil.rmtree(tmpDir2)