Вариант 1
Как указал rkbarney, есть Python savReaderWriter, доступный через pypi. Я столкнулся с двумя проблемами:
- Он опирается на множество дополнительных библиотек, помимо, казалось бы, чистой Python-реализации. Файлы SPSS читаются и записываются почти в каждом случае предоставленными IBM модулями ввода / вывода SPSS. Эти модули различаются в зависимости от платформы, и по моему опыту «pip install savReaderWriter» не запускает их из коробки (в OS X).
- Разработка на savReaderWriter, хотя и не умерла, менее актуальна, чем можно было бы надеяться. Это усложняет первый вопрос. Он использует некоторые устаревшие пакеты для увеличения скорости и выдает некоторые предупреждения каждый раз, когда вы импортируете savReaderWriter, если они недоступны. Сегодня это не большая проблема, но в будущем это может стать проблемой, так как IBM продолжает обновлять модули ввода / вывода SPSS для работы с новыми форматами SPSS (они уже в версии 21 или 22, если память используется).
Вариант 2
Я решил использовать R в качестве посредника. Используя rpy2, я настроил простую функцию для чтения файла во фрейм данных R и вывода его снова в виде файла CSV, который я впоследствии импортирую в python. Это немного rube-goldberg, но это работает. Конечно, для этого требуется R, который также может быть сложен для установки в вашей среде (и имеет разные двоичные файлы для разных платформ).