How to open a Shapefile on a Mac
Double-clicking a .shp on a Mac does nothing useful,
and the most common reason one will not open anywhere is not the
.shp itself. It is the files that should be next to it.
A Shapefile is several files
The name is singular, the format is not. A Shapefile called
roads is at least three files with the same name:
roads.shp: the shapes themselves.roads.shx: an index into them.roads.dbf: the attributes, one row per shape.
Usually there is a roads.prj with the coordinate system and
sometimes a roads.cpg with the text encoding. If someone sent
you only the .shp, or the files were renamed separately, no
tool can read the attributes. Ask for the whole set, usually as a zip.
Ways to open one
DuckDB's command line (free)
DuckDB reads every format on this page through its spatial extension, which the command line downloads the first time you ask for it:
brew install duckdb
duckdb -c "INSTALL spatial; LOAD spatial; SELECT * FROM ST_Read('roads.shp') LIMIT 20"
GDAL's ogrinfo (free)
GDAL is the library almost every GIS tool reads files through, and its command-line tools describe a file without opening anything else:
brew install gdal
ogrinfo -so -al roads.shp
That prints the layer, the coordinate system, the extent and the field types. It is a summary, not a table you can scroll.
QGIS (free)
The full open-source desktop GIS. If you need to see the shapes on a map, style them or edit them, this is the right tool, and it is free. It is a lot of application to start if all you wanted was to read the attribute table.
Python
geopandas.read_file('roads.shp') gives you a GeoDataFrame,
and is the right answer when the next step is code. It loads the whole
file into memory.
Doing it in Datapuddle
Datapuddle opens the .shp and reads its companion files
through DuckDB's spatial extension.
- Double-click the file in Finder, drag it onto the app icon, or use File ▸ Open….
- The first time you open a Shapefile from a
folder, Datapuddle asks for access to that folder, so it can read the
.shxand.dbfbeside the file. Click Allow once, and that folder is remembered. - The editor is filled in with
SELECT * FROM ST_Read('…')for that file, so the next query is an edit, not a blank page.
The folder prompt is the Mac's own file panel, already pointing at the
right place. It is needed because Mac App Store apps can only read the
files you choose, and opening roads.shp chooses only that
one file. Access is read-only.
Each shape is a row, each .dbf field a column, and the
geometry shows as readable text. To count roads by type:
SELECT type, count(*) AS roads
FROM ST_Read('roads.shp')
GROUP BY type
ORDER BY roads DESC
Which to use
- Seeing it on a map: QGIS.
- Checking a file is complete:
ogrinfo. - Reading and querying the attribute table: Datapuddle.
Datapuddle on the Mac App Store — 7 day trial, then $39.99 once. Apple silicon, macOS 26 or later. · Docs Guides · Home