Convert SAV to CSV
Convert SPSS (.sav) files to CSV — free methods that work without SPSS
Need a different conversion? Browse all of our CSV converters.
A .sav file is a data file from IBM SPSS Statistics, and you normally need SPSS — expensive, license-managed software — to open it. There is no in-browser .sav converter on this site yet, because the format needs a real statistics library to parse. But you can still convert it for free: the fastest option with no software installs is Google Colab (below), and if you already use Python or R, jump to those sections.
No installation: Google Colab (works on any computer)
Google Colab is a free service that runs Python in your browser — nothing to install, and it works on a Chromebook or a locked-down library computer. You need only a Google account.
- Open Colab — Go to colab.research.google.com, sign in with any Google account, and click New Notebook.
- Upload your file — Click the folder icon in the left sidebar, then the upload button, and select your .sav file.
- Run the code — Paste this code into the cell and press the run button:
!pip install pyreadstat
import pandas as pd
df = pd.read_spss("survey.sav") # replace survey.sav with your file's name
df.to_csv("output.csv", index=False)
- Download the result — Refresh the file sidebar, right-click
output.csv, and choose Download.
Your uploaded file lives in a temporary private session that disappears when the tab closes — but it is processed on Google’s servers, so for confidential data prefer one of the desktop apps below, which never send your file anywhere.
Free desktop apps (no code)
- GNU PSPP — a free SPSS replacement from the GNU project, and the best pick for a straight conversion. It opens .sav files natively on Windows, macOS, and Linux. Open your file, then use File → Export and choose Comma-Separated Values to save a CSV. If you were searching for a “.sav viewer,” this is also the answer: you can browse the data and variable views just like in SPSS.
- jamovi — a free statistics app with a friendlier interface than PSPP. It imports .sav files with value labels intact, and File → Export writes CSV. The better choice if you also need to run analyses after converting.
- JASP — same pitch as jamovi: free, imports .sav (plus .zsav and .por), and exports data as CSV.
Python
Install the two required packages, then run the script:
pip install pandas pyreadstat
import pandas as pd
df = pd.read_spss("survey.sav") # replace survey.sav with your file's name
df.to_csv("output.csv", index=False)
One thing to decide: codes or labels. SPSS columns often store numeric codes with labels attached (1 = Male, 2 = Female). pandas.read_spss writes the labels into your CSV by default; pass convert_categoricals=False to keep the raw codes. If you need both, use pyreadstat directly — df, meta = pyreadstat.read_sav("survey.sav") returns the data plus a meta object whose variable_value_labels holds every code-to-label mapping.
R
install.packages(c("haven", "readr"))
library(haven)
df <- read_sav("survey.sav") # replace survey.sav with your file's name
readr::write_csv(df, "output.csv")
This writes the underlying numeric codes for labeled columns. To write the labels instead, convert first: df <- as_factor(df).
Which method should I use?
| Your situation | Use this |
|---|---|
| No software installs, one file, data not confidential | Google Colab |
| Confidential data | GNU PSPP — the file never leaves your computer |
| You need to run stats after converting | jamovi or JASP |
| Many files, or a task you’ll repeat | Python or R script |