Bug report #13325
QgsVectorFileWriter doesn't create fields when writing a new shapefile
| Status: | Closed | ||
|---|---|---|---|
| Priority: | Normal | ||
| Assignee: | - | ||
| Category: | Data Provider | ||
| Affected QGIS version: | master | Regression?: | No |
| Operating System: | Linux | Easy fix?: | No |
| Pull Request or Patch supplied: | No | Resolution: | invalid |
| Crashes QGIS or corrupts data: | No | Copied to github as #: | 21379 |
Description
This snippet does not work as expected
fields = QgsFields()
fields.append(QgsField('name', QVariant.String, 'name', 10))
w = QgsVectorFileWriter('points.shp', 'utf-8', fields, QGis.WKBPoint, QgsCoordinateReferenceSystem(4326))
# An existing 'name' field is expected
layer = QgsVectorLayer('points.shp', 'points', 'ogr')
assert('name' in [f.name() for f in layer.pendingFields()])
History
#1
Updated by Salvatore Larosa about 10 years ago
you have to delete the writer in order to close the writing of the shapefile. This is mandatory right now.
[...]
if w.hasError():
print w.errorMessage()
del w
[...]
#2
Updated by Alessandro Pasotti about 10 years ago
- Resolution set to invalid
- Status changed from Open to Closed
Thank you! I've updated the cookbook (deleted "optional").