Estoy tratando de crear una copia vacía de una capa determinada, por lo que no sólo los objetos de tablestructure, crs, etc.
from qgis.utils import *
layer = qgis.utils.iface.activeLayer()
print layer.name()
provider = layer.dataProvider()
print provider.fields()[0].name()
writer1 = QgsVectorFileWriter("d:/temp/qgis/test3.shp",
"CP1250",
provider.fields(),
provider.geometryType(),
provider.crs(),
"ESRI Shapefile")
Cuando abro el archivo creado (test3) no hay tablestructure, crs. etc.
El script se ejecute en el segundo tiempo con test3 todavía abierto, funciona.
Obviamente me olvido de algo .
Otra buena solución que he encontrado más tarde: http://gis.stackexchange.com/q/156096/67332/
lo carga en la memoria de la capa.