The pyqgis script below will write the field name and field type of a given vector layer to a text file.
This is the same information you will find when you access the 'Fields' tab from the layer's property window as seen below.
Currently, there is no way to copy/save this table to a text or similar file for use off QGIS interface. So, it did be great if we write a little script to do the hard work for us.
The code:-
# Read active layer from the QGIS layer panel or read the shapefile from its path layer = qgis.utils.iface.activeLayer() # vector_file = r"C:\path_to_shapefile.shp" # layer = QgsVectorLayer(vector_file, 'DISPLAYNAME', 'ogr') # Count the number of feature (rows) and number of fields (columns) faetureCount = layer.featureCount() fieldCount = layer.fields().count() # Loop through the layer fields to get each field name and type data_list = [] for field in layer.fields(): field_name = field.name() field_type = field.typeName() data = field_name, field_type data_list.append(data) # Write the data_list to text file... txtFileName = layer.name() # from layer name with open(txtFileName +'.txt', 'w', encoding="utf-8") as f: print(data_list, end='\n', file = f) # Print location of the text file... import os print('The text file is save at: ', os.getcwd(), ' and its file name is: ', txtFileName)
The comments in the code are self explanatory, also remember to import the necessary modules.
You can extend the script by writing it to spreadsheet file using CSV or Pandas module.
That is it!
No comments:
Post a Comment