import ogr
import gdal
import os
gdal.VersionInfo()
'2010100'
%cd D:\\
D:\
def getnames(infile):
layers = []
ds = ogr.Open(infile)
for i in range(ds.GetLayerCount()):
lyr = ds.GetLayer(i)
layers.append(lyr.GetName())
ds = None
return layers
infile = 'doc.kml'
layers = getnames(infile)
print(len(layers))
26
outfile1 = 'doc1.geojson'
outfile2 = 'doc2.geojson'
os.path.exists(outfile1), os.path.exists(outfile2)
(False, False)
res = gdal.VectorTranslate(outfile1, infile, format='GeoJSON', accessMode='append', layers=layers, layerName='outlayer')
res
<osgeo.gdal.Dataset; proxy of <Swig Object of type 'GDALDatasetShadow *' at 0x0000000004773D50> >
res = None
print(ogr.Open(outfile1)) # file is also 'in use' in Explorer, res = None doesnt release handle?
None
res = gdal.VectorTranslate(outfile2, infile, format='GeoJSON', accessMode='append', layers=layers, layerName='outlayer')
res = None
print(ogr.Open(outfile2))
<osgeo.ogr.DataSource; proxy of <Swig Object of type 'OGRDataSourceShadow *' at 0x00000000047DBD50> >