我正试图用Python将一个约2GB的SPSS(.SAV)大文件转换为CSV。
如果有一个大小为500MB的文件,做下面的工作没有问题。
import pandas as pd
df = pd.read_spss('stdFile.sav')
df.to_csv("stdFile.csv", encoding = "utf-8-sig")
但在这种情况下,我得到了一个MemoryError... ...
我正在寻找解决方案,不一定要用Python。但我没有SPSS许可证,所以我必须用另一个工具转换文件。
首先导入模块 savReaderWriter 将 .sav 文件转换为结构化数组,然后导入模块 numpy 将结构化数组转换为 csv。
pip install savReaderWriter
import savReaderWriter
import numpy as np
reader_np = savReaderWriter.SavReaderNp("stdFile.sav")
array = reader_np.to_structured_array("outfile.dat")
np.savetxt("stdFile.csv", array, delimiter=",")
reader_np.close()