如何使用 Python 在 SPSS 中设置可变宽度和小数?

How to set Variable Width and Decimals in SPSS with Python?

我正在尝试使用 SavReaderWriter 操作一些 .sav 文件。我已经拥有的是:

with savReaderWriter.SavReader(dirIn, ioUtf8 = True) as reader:
    df = pd.DataFrame(reader.all(), columns = [s for s in reader.header])
    varLabels = reader.varLabels
    varTypes = reader.varTypes
    valueLabels = reader.valueLabels
    varWidth = reader.varWids # <------------- This guy
    varMeasure = reader.measureLevels
    varAlignments = reader.alignments
    varColumnWidths = reader.columnWidths
    varMissingValues = reader.missingValues

和:

with SavWriter(savFileName = dirOut,
               varNames = varNames,
               varTypes = varTypes,
               varLabels= varLabels,
               valueLabels = valueLabels,
               measureLevels = varMeasure,
               columnWidths = varColumnWidths,
               alignments = varAlignments,
               missingValues = varMissingValues,
               ioUtf8=True
              ) as writer:

    for record in records:
        writer.writerow(record)

问题是在使用 SavWriter 部分时,我不知道如何设置在第一时间读取 sav 代码时获得的可变宽度。还有其他人知道我能做什么吗?

我真的成功了!

首先我必须在读取 .sav 时获取格式:

varFormats = reader.formats

然后在打开savWriter的时候加上这个参数即可:

formats = varFormats

虽然文档帮助不大,但让我了解了格式的工作原理: https://pythonhosted.org/savReaderWriter/index.html#formats