好吧,我一直在用python和spss来实现我想要的。我可以打开文件并进行更改,但是在保存文件(以及那些更改)时遇到问题。我所拥有的(仅使用schoollist
中的一所学校):
begin program.
import spss, spssaux
import os
schoollist = ['brow']
for x in schoollist:
school = 'brow'
school2 = school + '06.sav'
filename = os.path.join("Y:\...\Data", school2) #In this instance, Y:\...\Data\brow06.sav
spssaux.OpenDataFile(filename)
#--This block are the changes and not particularly relevant to the question--#
cur=spss.Cursor(accessType='w')
cur.SetVarNameAndType(['name'],[8])
cur.CommitDictionary()
for i in range(cur.GetCaseCount()):
cur.fetchone()
cur.SetValueChar('name', school)
cur.CommitCase()
cur.close()
#-- What am I doing wrong here? --#
spss.Submit("save outfile = filename".)
end program.
关于如何让save outfile
与循环一起工作有什么建议吗?谢谢。干杯
我不熟悉
spssaux.OpenDataFile
,并且找不到任何关于它的文档(除了在unicode模式下使用SPSS数据文件的参考)。但我要猜测的是,问题是它获取SPSS数据文件以在Python程序块中使用,但实际上它没有打开以进一步提交命令。在这里我做了一个测试用例,它不是使用
spssaux.OpenDataFile
来获取文件,而是使用SPSS命令来完成这一切,只需通过python插入必要的部分。所以首先让我们创建一些假数据来处理。在现在这里是一个代码正在执行的成对向下版本。我插入了
^{pr2}$LIST ALL.
命令,这样您就可以检查输出,它是否正在将感兴趣的变量添加到文件中。在在save调用中,不能将filename解析为其实际值。应该是这样的: spss.提交(“”“保存输出文件=“%s”。”“%filename)”
相关问题 更多 >
编程相关推荐